Introduce a free_orinocodev() function into the orinoco driver, used by the hardware type/initialization modules to free the device structure in preference to directly calling free_netdev(). At the moment free_orinocodev() just calls free_netdev(). Future merges will make it clean up internal scanning state, so merging this now will reduce the diff noise.
Signed-off-by: David Gibson <[EMAIL PROTECTED]> Index: working-2.6/drivers/net/wireless/orinoco.h =================================================================== --- working-2.6.orig/drivers/net/wireless/orinoco.h 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/orinoco.h 2005-02-18 12:04:03.000000000 +1100 @@ -107,6 +107,7 @@ extern struct net_device *alloc_orinocodev(int sizeof_card, int (*hard_reset)(struct orinoco_private *)); +extern void free_orinocodev(struct net_device *dev); extern int __orinoco_up(struct net_device *dev); extern int __orinoco_down(struct net_device *dev); extern int orinoco_stop(struct net_device *dev); Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== --- working-2.6.orig/drivers/net/wireless/orinoco.c 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/orinoco.c 2005-02-18 13:03:51.846593520 +1100 @@ -2398,6 +2398,11 @@ } +void free_orinocodev(struct net_device *dev) +{ + free_netdev(dev); +} + /********************************************************************/ /* Wireless extensions */ /********************************************************************/ @@ -4131,6 +4136,7 @@ /********************************************************************/ EXPORT_SYMBOL(alloc_orinocodev); +EXPORT_SYMBOL(free_orinocodev); EXPORT_SYMBOL(__orinoco_up); EXPORT_SYMBOL(__orinoco_down); Index: working-2.6/drivers/net/wireless/orinoco_cs.c =================================================================== --- working-2.6.orig/drivers/net/wireless/orinoco_cs.c 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/orinoco_cs.c 2005-02-18 12:04:03.000000000 +1100 @@ -235,7 +235,7 @@ dev); unregister_netdev(dev); } - free_netdev(dev); + free_orinocodev(dev); } /* orinoco_cs_detach */ /* Index: working-2.6/drivers/net/wireless/orinoco_pci.c =================================================================== --- working-2.6.orig/drivers/net/wireless/orinoco_pci.c 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/orinoco_pci.c 2005-02-18 12:04:03.000000000 +1100 @@ -254,7 +254,7 @@ if (dev->irq) free_irq(dev->irq, dev); - free_netdev(dev); + free_orinocodev(dev); } if (pci_ioaddr) @@ -279,7 +279,7 @@ iounmap(priv->hw.iobase); pci_set_drvdata(pdev, NULL); - free_netdev(dev); + free_orinocodev(dev); pci_disable_device(pdev); } Index: working-2.6/drivers/net/wireless/orinoco_plx.c =================================================================== --- working-2.6.orig/drivers/net/wireless/orinoco_plx.c 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/orinoco_plx.c 2005-02-18 12:04:03.000000000 +1100 @@ -279,7 +279,7 @@ fail: free_irq(dev->irq, dev); fail_irq: - free_netdev(dev); + free_orinocodev(dev); fail_alloc: pci_iounmap(pdev, mem); fail_map: @@ -304,7 +304,7 @@ pci_set_drvdata(pdev, NULL); - free_netdev(dev); + free_orinocodev(dev); release_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3)); Index: working-2.6/drivers/net/wireless/orinoco_tmd.c =================================================================== --- working-2.6.orig/drivers/net/wireless/orinoco_tmd.c 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/orinoco_tmd.c 2005-02-18 12:04:03.000000000 +1100 @@ -164,7 +164,7 @@ out4: pci_iounmap(pdev, mem); out3: - free_netdev(dev); + free_orinocodev(dev); out2: release_region(pccard_ioaddr, pccard_iolen); out: @@ -188,7 +188,7 @@ pci_set_drvdata(pdev, NULL); - free_netdev(dev); + free_orinocodev(dev); release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2)); Index: working-2.6/drivers/net/wireless/airport.c =================================================================== --- working-2.6.orig/drivers/net/wireless/airport.c 2005-02-18 12:04:03.000000000 +1100 +++ working-2.6/drivers/net/wireless/airport.c 2005-02-18 12:04:03.000000000 +1100 @@ -149,7 +149,7 @@ ssleep(1); macio_set_drvdata(mdev, NULL); - free_netdev(dev); + free_orinocodev(dev); return 0; } @@ -211,7 +211,7 @@ if (macio_request_resource(mdev, 0, "airport")) { printk(KERN_ERR PFX "can't request IO resource !\n"); - free_netdev(dev); + free_orinocodev(dev); return -EBUSY; } -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist. NOT _the_ _other_ _way_ | _around_! http://www.ozlabs.org/people/dgibson - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/