diff options
author | Richard Kennedy <richard@rsk.demon.co.uk> | 2008-11-03 11:09:34 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-06 13:51:58 -0800 |
commit | ee313528d96cbd9eda568fec11fb6fdae13d30a4 (patch) | |
tree | 2ed2027806719c0972eb501a338a3d8ad2e4165a /drivers/staging/wlan-ng | |
parent | 56afef56eb3323b71b332e890263990926a2c062 (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>
Diffstat (limited to 'drivers/staging/wlan-ng')
-rw-r--r-- | drivers/staging/wlan-ng/p80211netdev.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/staging/wlan-ng/p80211netdev.c b/drivers/staging/wlan-ng/p80211netdev.c index 41b62a3fe545..89e521183e41 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; |