aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kennedy <richard@rsk.demon.co.uk>2008-11-03 11:09:34 +0000
committerGreg Kroah-Hartman <gregkh@suse.de>2009-01-06 13:51:58 -0800
commitee313528d96cbd9eda568fec11fb6fdae13d30a4 (patch)
tree2ed2027806719c0972eb501a338a3d8ad2e4165a
parent56afef56eb3323b71b332e890263990926a2c062 (diff)
Staging: wlan-ng: p80211netdev.c fix netdev alloc to prevent oops on device start
a version of this patch is in the wlan-ng_devel tree initializes netdev correctly to prevent an oops on device start. Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/wlan-ng/p80211netdev.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/staging/wlan-ng/p80211netdev.c b/drivers/staging/wlan-ng/p80211netdev.c
index 41b62a3fe54..89e521183e4 100644
--- a/drivers/staging/wlan-ng/p80211netdev.c
+++ b/drivers/staging/wlan-ng/p80211netdev.c
@@ -814,13 +814,11 @@ int wlan_setup(wlandevice_t *wlandev)
(unsigned long)wlandev);
/* Allocate and initialize the struct device */
- dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC);
+ dev = alloc_netdev(0,"wlan%d",ether_setup);
if ( dev == NULL ) {
WLAN_LOG_ERROR("Failed to alloc netdev.\n");
result = 1;
} else {
- memset( dev, 0, sizeof(netdevice_t));
- ether_setup(dev);
wlandev->netdev = dev;
dev->ml_priv = wlandev;
dev->hard_start_xmit = p80211knetdev_hard_start_xmit;
@@ -927,15 +925,9 @@ int register_wlandev(wlandevice_t *wlandev)
DBFENTER;
- i = dev_alloc_name(wlandev->netdev, "wlan%d");
- if (i >= 0) {
- i = register_netdev(wlandev->netdev);
- }
- if (i != 0) {
- return -EIO;
- }
-
- strcpy(wlandev->name, dev->name);
+ i = register_netdev(wlandev->netdev);
+ if (i)
+ return i;
DBFEXIT;
return 0;