diff options
author | David S. Miller <davem@davemloft.net> | 2017-04-01 22:31:15 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-04-01 22:31:15 +0200 |
commit | 612307c6bebc0651cf36b6bf76249898f595fd64 (patch) | |
tree | 6b294dcd3806cce0bf1183c00248b02b7030cdfc | |
parent | Merge branch 'bpf-map_value_adj-reg-types-fixes' (diff) | |
parent | mac80211: unconditionally start new netdev queues with iTXQ support (diff) | |
download | linux-612307c6bebc0651cf36b6bf76249898f595fd64.tar.xz linux-612307c6bebc0651cf36b6bf76249898f595fd64.zip |
Merge tag 'mac80211-for-davem-2017-03-31' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg says:
====================
Two fixes:
* don't block netdev queues (indefinitely!) if mac80211
manages traffic queueing itself
* check wiphy registration before checking for ops
on resume, to avoid crash
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/mac80211/iface.c | 3 | ||||
-rw-r--r-- | net/wireless/sysfs.c | 10 |
2 files changed, 6 insertions, 7 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 40813dd3301c..5bb0c5012819 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -718,7 +718,8 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) ieee80211_recalc_ps(local); if (sdata->vif.type == NL80211_IFTYPE_MONITOR || - sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { + sdata->vif.type == NL80211_IFTYPE_AP_VLAN || + local->ops->wake_tx_queue) { /* XXX: for AP_VLAN, actually track AP queues */ netif_tx_start_all_queues(dev); } else if (dev) { diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c index 16b6b5988be9..570a2b67ca10 100644 --- a/net/wireless/sysfs.c +++ b/net/wireless/sysfs.c @@ -132,12 +132,10 @@ static int wiphy_resume(struct device *dev) /* Age scan results with time spent in suspend */ cfg80211_bss_age(rdev, get_seconds() - rdev->suspend_at); - if (rdev->ops->resume) { - rtnl_lock(); - if (rdev->wiphy.registered) - ret = rdev_resume(rdev); - rtnl_unlock(); - } + rtnl_lock(); + if (rdev->wiphy.registered && rdev->ops->resume) + ret = rdev_resume(rdev); + rtnl_unlock(); return ret; } |