Detail:
	On network adapter unload, unregister_netdev() calls down the
notifier chain, announcing the unload. If RTNETLINK is compiled in, then
one of the notifications is rtnetlink_event(), eventually calling
rtnetlink_fill_ifinfo(), which does a dev->get_stats(dev). If the stats
call to the driver uses private info, then the call to unregister_netdev()
must happen before the private data is freed. I haven't checked any other
network drivers for this, but it may be worth doing.
Patch:
--- drivers/net/depca.c.old	Sun Jul 15 16:43:58 2001
+++ drivers/net/depca.c	Wed Aug  8 21:06:45 2001
@@ -2060,6 +2060,8 @@
 cleanup_module(void)
 {
   struct depca_private *lp = thisDepca.priv;
+
+  unregister_netdev(&thisDepca);
   if (lp) {
     iounmap(lp->sh_mem);
 #ifdef CONFIG_MCA
@@ -2071,7 +2073,6 @@
   }
   thisDepca.irq=0;
-  unregister_netdev(&thisDepca);
   release_region(thisDepca.base_addr, DEPCA_TOTAL_SIZE);
 }
 #endif /* MODULE */
-- Peter Denison <peterd@pnd-pc.demon.co.uk> Linux Driver for Promise DC4030VL cards. See http://www.pnd-pc.demon.co.uk/promise/promise.html for details- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/