diff options
author | Axel Lin <axel.lin@gmail.com> | 2011-01-10 10:26:00 +0800 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-13 15:46:44 -0500 |
commit | 35b3ac470b982ded560e1b2ec9206a8d186c3459 (patch) | |
tree | 86c767eb3574447c4a318831d9cd1e021a4f1d73 | |
parent | 4e5518ca53be29c1ec3c00089c97bef36bfed515 (diff) | |
download | op-kernel-dev-35b3ac470b982ded560e1b2ec9206a8d186c3459.zip op-kernel-dev-35b3ac470b982ded560e1b2ec9206a8d186c3459.tar.gz |
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>
-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 13a69eb..5091d77 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; } |