On Tue, 4 Apr 2006 14:29:33 +1000, Peter Chubb <driversxp@...> said:
Peter> if I rmmod ndiswrapper, the machine hangs. It leaves nothing
Peter> in the logs or on the console.
There is a similar issue with Marvell 8335 (802.11g) Windows driver -
it doesn't disable interrupts during halting as it is supposed to
do. My guess is that the driver for your chipset has same issue. The
"fix" is to eject the card and then remove module. I have informed
Marvell about this issue. Their response was cryptic (and as often
happens not helpful) - they suggested we use latest version of Windows
driver, but said they won't distribute it and no vendor has this
version of driver yet!
Peter> Any clues as to how to debug this? I suspect that there's
Peter> something disabling interrupts and leaving them off.
If this issue is same as the one for 8335, the driver raises interrupt
during/right after calling NdisMDeregisterInterrupt. According to
documentation for NdisMDeregisterInterrupt, driver should've disabled
interrupts before calling it. Since ndiswrapper disables interrupts in
NdisMDeregisterInterrupt, you will then get 'disabling IRQ' error and
crash. You can get debug trace from ndiswrapper if you compile
ndiswrapper with 'make DEBUG=2' (level 2 is enough in this case) and
load the module. More details about debug trace can be found in wiki