This should fix module unload issues with tun driver in 2.6-test2.
Driver was not cleaning up it's devices on module exit.
diff -Nru a/drivers/net/tun.c b/drivers/net/tun.c
--- a/drivers/net/tun.c Thu Aug 7 15:41:10 2003
+++ b/drivers/net/tun.c Thu Aug 7 15:41:10 2003
@@ -605,7 +605,18 @@
void tun_cleanup(void)
{
+ struct net_device *dev, *nxt;
+
misc_deregister(&tun_miscdev);
+
+ rtnl_lock();
+ for (dev = dev_base; dev; dev = nxt) {
+ nxt = dev->next;
+ if (dev->init == tun_net_init)
+ unregister_netdevice(dev);
+ }
+ rtnl_unlock();
+
}
module_init(tun_init);