20020309010013.GA25467@compsoc.man.ac.uk">Yes, I know exactly what you mean. I have owner:THIS_MODULE set.On Fri, Mar 08, 2002 at 06:36:28PM -0600, David Stroupe wrote:Thanks John for the release() reminder...indeed that does get called no
matter how my app is closed...exactly what I was looking for! The
problem that I am trying to resolve takes place when I rmmod my driver.
I get a total system crash with a kernel panic, an oops of 0 and an "In
interrupt handler -not syncing- message.
My assumption is that (my driver uses irqs and requests and gets
handlers) the irq is not being freed for some reason and the handler
(that has just been removed by rmmod) is being called and whamo. Am I
looking for the correct problem? In release, I try to disable
interrupts and free all the irqs that I have requested and I really
think that I do that. What am I missing? Do I have to do something to
release the irq handler other than free_irq?
Trying to rmmod a module will not make any tasks using that code exit.
This is why you need to use ->owner() or module counts, to /prevent/ the
rmmod whilst a task is using your driver. Then when the module code
isn't used, the module can be removed.
It's hard to say if you aware of this, given your comments.
This problem seems to happen when I ctrl-c out of my app then try to remove the driver. The driver will not remove if the app is running and is using the driver. So, given that the driver should be removable, and given the error message, is it something having to do with the free_irq part of the driver?
-- Best regards, David Stroupe Keyed-Up Software 5307 Faireast Court Arlington, Texas 76018-1683 817/557-4903 voice 817/472-0408 fax