How to catch interrupt
rik at cronyx.ru
Thu Jun 17 17:26:19 GMT 2004
Bruce Evans wrote:
>On Thu, 17 Jun 2004, Roman Kurakin wrote:
>>>However, you may only need to test for pending interrupts. This can
>>>be done for isa interrupts using isa_irq_pending() to get a bitmap of
>>It seems that this function is not working for interrupts that were
>>by some driver before I call it.
>It only works for unacknowledged interrupts, so it can only work for
>masked interrupts. See sio.c:
>% * We don't want to get actual interrupts, just masked ones.
>% * Interrupts from this line should already be masked in the ICU,
>% * but mask them in the processor as well in case there are some
>% * (misconfigured) shared interrupts.
>Note that masking interrupts in the processor only helps for the non-SMP
>case, and the comment has rotted:
>- the code acquires a spinlock. It only masks interrupts as a BAD side
> effect. In my version, acquiring a spinlock doesn't mask processor
> interrupts, and there is an explicit intr_disable().
>- interrupts can now be shared in some non-misconfigured cases.
So spin lock should help me in some cases but there is other cases were
this wouldn't help or I miss
smth? In this case if some driver will acquire interrupt while probing
and after this it will release it
(for example it will decide that this is wrong intr and will try other),
and after we will try to load
sio driver we may fail to load it case we would unable to check this
>freebsd-current at freebsd.org mailing list
>To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current