[EMAIL PROTECTED] wrote:

There seems to be a bug in lis_free_irq().
<snip>
>
The problem is that if irq kicks in before it is released at (A2) but after handler is NULLed at (A1) and lis_khandler() is called, it will fail at (B1) since dv->handler is NULL already.

With a quick look at the code, I would agree that the free_irq() call
should be moved up to before the handler is NULLed and that the dv
structure should be freed (as is done in lis_free_devid_list()).
Thanks for sharing.

Just one additional note on this in case you discovered this while
chasing down an interrupt problem:  The hardware should be programmed
to no longer generate an interrupt _before_ lis_free_irq() is called.
If that is done, then that bug is only a problem when there are
shared interrupts.  If that's not done, then there can still be
interrupt issues (unserviced IRQs) even after this is fixed.

Regards,
        Steve

------------------------------------------------------------------------
Steve Schefter                               phone: +1 705 725 9999 x26
The Software Group Limited                     fax: +1 705 725 9666
642 Welham Road,                             email: [EMAIL PROTECTED]
Barrie, Ontario CANADA  L4N 9A1                Web: www.wanware.com

_______________________________________________
Linux-streams mailing list
[email protected]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to