On Thu, Oct 07, 2004 at 08:26:22AM -0400, Richard B. Johnson wrote: > On Thu, 7 Oct 2004, Arjan van de Ven wrote: > > >On Thu, Oct 07, 2004 at 08:01:47AM -0400, Richard B. Johnson wrote: > >>Also, when this driver is running, transferring large volumes > >>of data, the kernel decides that there have been too many interrupts, and > >>does: > >> > >>Message from syslogd@chaos at Wed Oct 6 21:22:57 2004 ... > >>chaos kernel: Disabling IRQ #18 > >> > >>This, in spite of the fact that interrupts occur only when > >>DMA completion happens and new data are available, i.e., > >>one interrupt every 16 megabytes of data transferred. > >> > >>Who decided that it had a right to disable my interrupt???? > > > >the kernel did because you don't return the proper value for "I handled the > >IRQ" from your ISR. > > Do you know what that value is? I can't find it. I just returned 0 > and it worked for awhile. IRQ_HANDLED is you handled the irq, IRQ_NONE if you didn't > The kernel calls cleanup_module() and the printk() shows that it > was truly called. I fail to find where you declare module_exit() in your sources