forked from luck/tmp_suning_uos_patched
mac802154: Avoid rtnl deadlock in mac802154_wpan_ioctl().
->ndo_do_ioctl() can be entered with the rtnl lock already held, for example when sending a wext ioctl to a device (in which case the rtnl lock is taken by wext_ioctl_dispatch()), but mac802154_wpan_ioctl() currently unconditionally takes the rtnl lock on entry, which can cause deadlocks. To fix this, bail out of mac802154_wpan_ioctl() before taking the rtnl lock if the ioctl cmd is not one of the cmds we implement. Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Acked-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
f72186d22a
commit
e34fd879f5
|
@ -62,6 +62,9 @@ mac802154_wpan_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||||
(struct sockaddr_ieee802154 *)&ifr->ifr_addr;
|
(struct sockaddr_ieee802154 *)&ifr->ifr_addr;
|
||||||
int err = -ENOIOCTLCMD;
|
int err = -ENOIOCTLCMD;
|
||||||
|
|
||||||
|
if (cmd != SIOCGIFADDR && cmd != SIOCSIFADDR)
|
||||||
|
return err;
|
||||||
|
|
||||||
rtnl_lock();
|
rtnl_lock();
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user