Aarp module unload needs to use del_timer_sync to handle the
race condition where timer starts or is running during module
unload.
diff -Nru a/net/appletalk/aarp.c b/net/appletalk/aarp.c
--- a/net/appletalk/aarp.c Fri Aug 29 13:31:18 2003
+++ b/net/appletalk/aarp.c Fri Aug 29 13:31:18 2003
@@ -981,7 +981,7 @@
/* General module cleanup. Called from cleanup_module() in ddp.c. */
void aarp_cleanup_module(void)
{
- del_timer(&aarp_timer);
+ del_timer_sync(&aarp_timer);
unregister_netdevice_notifier(&aarp_notifier);
unregister_snap_client(aarp_dl);
aarp_purge();
|