aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-11-17 14:25:23 -0500
committerJeff Garzik <jeff@garzik.org>2006-12-02 00:16:37 -0500
commite487647abbe66390b99f9a32ede4688b255282dd (patch)
tree861f55139902c59218372f1cf69b3b0d752c9d6e
parentbac7e8746ce562556b7bd750c7652154483b15e2 (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.c14
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);