mirror of https://gitee.com/openkylin/linux.git
mac802154: iface: fix hrtimer cancel on ifdown
The interframe spacing timer is a per phy definition and is part of a ieee802154_local structure. If we have possible multiple interfaces ifdown one interface then the timer should not be cancled. First if the last interface is down and the receive handling is stopped we should be sure that the interframe spacing timer isn't run anymore. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
1bc1754e82
commit
b4ee194441
|
@ -302,15 +302,15 @@ static int mac802154_slave_close(struct net_device *dev)
|
|||
|
||||
ASSERT_RTNL();
|
||||
|
||||
hrtimer_cancel(&local->ifs_timer);
|
||||
|
||||
netif_stop_queue(dev);
|
||||
local->open_count--;
|
||||
|
||||
clear_bit(SDATA_STATE_RUNNING, &sdata->state);
|
||||
|
||||
if (!local->open_count)
|
||||
if (!local->open_count) {
|
||||
hrtimer_cancel(&local->ifs_timer);
|
||||
drv_stop(local);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue