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>
This commit is contained in:
parent
4e5518ca53
commit
35b3ac470b
|
@ -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);
|
ndev = alloc_netdev_mq(0, "wlan%d", ether_setup, IWM_TX_QUEUES);
|
||||||
if (!ndev) {
|
if (!ndev) {
|
||||||
dev_err(dev, "no memory for network device instance\n");
|
dev_err(dev, "no memory for network device instance\n");
|
||||||
|
ret = -ENOMEM;
|
||||||
goto out_priv;
|
goto out_priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,6 +139,7 @@ void *iwm_if_alloc(int sizeof_bus, struct device *dev,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!iwm->umac_profile) {
|
if (!iwm->umac_profile) {
|
||||||
dev_err(dev, "Couldn't alloc memory for profile\n");
|
dev_err(dev, "Couldn't alloc memory for profile\n");
|
||||||
|
ret = -ENOMEM;
|
||||||
goto out_profile;
|
goto out_profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue