diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-11-17 14:25:23 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-02 00:16:37 -0500 |
commit | e487647abbe66390b99f9a32ede4688b255282dd (patch) | |
tree | 861f55139902c59218372f1cf69b3b0d752c9d6e | |
parent | bac7e8746ce562556b7bd750c7652154483b15e2 (diff) |
[PATCH] chelsio: free_netdev
Network devices need to be free'd with free_netdev() not kfree()
otherwise the kernel will panic if an application has /sys/class/net/ethX/value
open and reads it.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/chelsio/cxgb2.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c index 37de99b65c14..37037e5890e1 100644 --- a/drivers/net/chelsio/cxgb2.c +++ b/drivers/net/chelsio/cxgb2.c | |||
@@ -1141,11 +1141,11 @@ static int __devinit init_one(struct pci_dev *pdev, | |||
1141 | t1_free_sw_modules(adapter); | 1141 | t1_free_sw_modules(adapter); |
1142 | out_free_dev: | 1142 | out_free_dev: |
1143 | if (adapter) { | 1143 | if (adapter) { |
1144 | if (adapter->regs) iounmap(adapter->regs); | 1144 | if (adapter->regs) |
1145 | iounmap(adapter->regs); | ||
1145 | for (i = bi->port_number - 1; i >= 0; --i) | 1146 | for (i = bi->port_number - 1; i >= 0; --i) |
1146 | if (adapter->port[i].dev) { | 1147 | if (adapter->port[i].dev) |
1147 | kfree(adapter->port[i].dev); | 1148 | free_netdev(adapter->port[i].dev); |
1148 | } | ||
1149 | } | 1149 | } |
1150 | pci_release_regions(pdev); | 1150 | pci_release_regions(pdev); |
1151 | out_disable_pdev: | 1151 | out_disable_pdev: |
@@ -1175,9 +1175,9 @@ static void __devexit remove_one(struct pci_dev *pdev) | |||
1175 | t1_free_sw_modules(adapter); | 1175 | t1_free_sw_modules(adapter); |
1176 | iounmap(adapter->regs); | 1176 | iounmap(adapter->regs); |
1177 | while (--i >= 0) | 1177 | while (--i >= 0) |
1178 | if (adapter->port[i].dev) { | 1178 | if (adapter->port[i].dev) |
1179 | kfree(adapter->port[i].dev); | 1179 | free_netdev(adapter->port[i].dev); |
1180 | } | 1180 | |
1181 | pci_release_regions(pdev); | 1181 | pci_release_regions(pdev); |
1182 | pci_disable_device(pdev); | 1182 | pci_disable_device(pdev); |
1183 | pci_set_drvdata(pdev, NULL); | 1183 | pci_set_drvdata(pdev, NULL); |