Re: lis_free_irq() bug?
Steve Schefter <[email protected]> Wed, 01 Feb 2006 09:53:06 -0500
| Newsgroups | gmane.linux.kernel.streams |
|---|---|
| Organization | The Software Group Limited |
| Message-ID | <[email protected]> |
[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