diff options
author | Axel Lin <axel.lin@gmail.com> | 2011-01-10 03:26:00 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-13 21:46:44 +0100 |
commit | 35b3ac470b982ded560e1b2ec9206a8d186c3459 (patch) | |
tree | 86c767eb3574447c4a318831d9cd1e021a4f1d73 /drivers | |
parent | hostap_cs: fix sleeping function called from invalid context (diff) | |
download | linux-35b3ac470b982ded560e1b2ec9206a8d186c3459.tar.xz linux-35b3ac470b982ded560e1b2ec9206a8d186c3459.zip |
iwmc3200wifi: Return proper error for iwm_if_alloc
In the case of alloc_netdev_mq failure and kmalloc failure,
current implementation returns ERR_PTR(0).
As a result, the caller of iwm_if_alloc does not catch the error by IS_ERR
macro. Fix it by setting proper error code for ret variable in the failure
cases.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwmc3200wifi/netdev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/netdev.c b/drivers/net/wireless/iwmc3200wifi/netdev.c index 13a69ebf2a94..5091d77e02ce 100644 --- a/drivers/net/wireless/iwmc3200wifi/netdev.c +++ b/drivers/net/wireless/iwmc3200wifi/netdev.c @@ -126,6 +126,7 @@ void *iwm_if_alloc(int sizeof_bus, struct device *dev, ndev = alloc_netdev_mq(0, "wlan%d", ether_setup, IWM_TX_QUEUES); if (!ndev) { dev_err(dev, "no memory for network device instance\n"); + ret = -ENOMEM; goto out_priv; } @@ -138,6 +139,7 @@ void *iwm_if_alloc(int sizeof_bus, struct device *dev, GFP_KERNEL); if (!iwm->umac_profile) { dev_err(dev, "Couldn't alloc memory for profile\n"); + ret = -ENOMEM; goto out_profile; } |