Jelajahi Sumber

DM9000: fix use of kfree() on net device

The DM9000 network driver is calling kfree() on an netdev
causing the system to oops if the probe fails. The right
thing to do is call free_netdev().

Thanks to Russell King for spotting this.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Ben Dooks 18 tahun lalu
induk
melakukan
9fd9f9b669
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      drivers/net/dm9000.c

+ 2 - 2
drivers/net/dm9000.c

@@ -601,7 +601,7 @@ dm9000_probe(struct platform_device *pdev)
 	printk("%s: not found (%d).\n", CARDNAME, ret);
 	printk("%s: not found (%d).\n", CARDNAME, ret);
 
 
 	dm9000_release_board(pdev, db);
 	dm9000_release_board(pdev, db);
-	kfree(ndev);
+	free_netdev(ndev);
 
 
 	return ret;
 	return ret;
 }
 }
@@ -1193,7 +1193,7 @@ dm9000_drv_remove(struct platform_device *pdev)
 
 
 	unregister_netdev(ndev);
 	unregister_netdev(ndev);
 	dm9000_release_board(pdev, (board_info_t *) ndev->priv);
 	dm9000_release_board(pdev, (board_info_t *) ndev->priv);
-	kfree(ndev);		/* free device structure */
+	free_netdev(ndev);		/* free device structure */
 
 
 	PRINTK1("clean_module() exit\n");
 	PRINTK1("clean_module() exit\n");