mirror of https://gitee.com/openkylin/linux.git
nl80211: Fix exit from nl80211_set_power_save
If interface does not existk, when nl80211_set_power_save is called, (eg. module has been unloaded) it has been causing kernel panic. Added new goto target to avoid crash if get_rdev_dev_by_info_ifindex does not return dev and rdev pointers. Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
56af326830
commit
92e44948b2
|
@ -4990,7 +4990,7 @@ static int nl80211_set_power_save(struct sk_buff *skb, struct genl_info *info)
|
||||||
|
|
||||||
err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev);
|
err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev);
|
||||||
if (err)
|
if (err)
|
||||||
goto unlock_rdev;
|
goto unlock_rtnl;
|
||||||
|
|
||||||
wdev = dev->ieee80211_ptr;
|
wdev = dev->ieee80211_ptr;
|
||||||
|
|
||||||
|
@ -5014,6 +5014,7 @@ static int nl80211_set_power_save(struct sk_buff *skb, struct genl_info *info)
|
||||||
unlock_rdev:
|
unlock_rdev:
|
||||||
cfg80211_unlock_rdev(rdev);
|
cfg80211_unlock_rdev(rdev);
|
||||||
dev_put(dev);
|
dev_put(dev);
|
||||||
|
unlock_rtnl:
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
Loading…
Reference in New Issue