Messages in this thread |  | | Date | Sun, 5 Nov 2000 01:38:09 +0100 | From | Andi Kleen <> | Subject | Re: Locking Between User Context and Soft IRQs in 2.4.0 |
| |
On Sat, Nov 04, 2000 at 12:07:34PM -0500, Jeff Garzik wrote: > Andi Kleen wrote: > > All the MOD_INC/DEC_USE_COUNT are done inside the modules themselves. There > > is nothing that would a driver prevent from being unloaded on a different > > CPU while it is already executing in ->open but has not yet executed the add > > yet or after it has executed the _DEC but it is still running in module code > > Normally the windows are pretty small, but very long running interrupt > > on one CPU hitting exactly in the wrong moment can change that. > > Module unload calls unregister_netdev, which grabs rtnl_lock. > dev->open runs under rtnl_lock. > > Given this, how can the driver be unloaded if dev->open is running?
It does not help, because when the semaphore synchronizes it is already too late -- free_module already did the zero module count check and nothing is going to stop it from unloading.
-Andi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |