Rev 3509 | Rev 3512 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3509 | Rev 3511 | ||
---|---|---|---|
Line 243... | Line 243... | ||
243 | jz .try_next_irq |
243 | jz .try_next_irq |
244 | push [ebx+IRQH.data] |
244 | push [ebx+IRQH.data] |
245 | call [ebx+IRQH.handler] |
245 | call [ebx+IRQH.handler] |
246 | pop ecx |
246 | pop ecx |
247 | test eax, eax |
247 | test eax, eax |
248 | jnz .found_in_wrong_list |
248 | jz .try_next_handler |
- | 249 | ||
- | 250 | .found_in_wrong_list: |
|
- | 251 | DEBUGF 1,'K : warning: relinking handler from IRQ%d to IRQ%d\n',\ |
|
- | 252 | ebp, [esp] |
|
- | 253 | spin_lock_irqsave IrqsList |
|
- | 254 | list_del ebx |
|
- | 255 | pop ebp |
|
- | 256 | lea edx, [irqh_tab+ebp*8] |
|
- | 257 | list_add_tail ebx, edx |
|
- | 258 | spin_unlock_irqrestore IrqsList |
|
- | 259 | jmp .exit |
|
- | 260 | ||
249 | .try_next_irq: |
261 | .try_next_irq: |
250 | inc ebp |
262 | inc ebp |
251 | cmp ebp, 16 |
263 | cmp ebp, 16 |
252 | jb .try_other_irqs |
264 | jb .try_other_irqs |
253 | pop ebp |
265 | pop ebp |
Line 262... | Line 274... | ||
262 | 274 | ||
263 | restore_ring3_context |
275 | restore_ring3_context |
264 | add esp, 4 |
276 | add esp, 4 |
Line 265... | Line -... | ||
265 | iret |
- | |
266 | - | ||
267 | .found_in_wrong_list: |
- | |
268 | DEBUGF 1,'K : warning: relinking handler from IRQ%d to IRQ%d\n',\ |
- | |
269 | ebp, [esp] |
- | |
270 | spin_lock_irqsave IrqsList |
- | |
271 | list_del ebx |
- | |
272 | pop ebp |
- | |
273 | lea edx, [irqh_tab+ebp*8] |
- | |
274 | list_add_tail ebx, edx |
- | |
275 | spin_unlock_irqrestore IrqsList |
- | |
276 | jmp .exit |
277 | iret |
277 | 278 | ||
278 | align 4 |
279 | align 4 |
279 | irqD: |
280 | irqD: |
280 | push eax |
281 | push eax |