--- /dev/null
+--- a/net/mac80211/offchannel.c
++++ b/net/mac80211/offchannel.c
+@@ -153,9 +153,11 @@ void ieee80211_offchannel_return(struct
+ if (sdata->vif.type == NL80211_IFTYPE_STATION) {
+ if (sdata->u.mgd.associated)
+ ieee80211_offchannel_ps_disable(sdata);
+- netif_tx_wake_all_queues(sdata->dev);
+ }
+
++ if (sdata->vif.type != NL80211_IFTYPE_MONITOR)
++ netif_tx_wake_all_queues(sdata->dev);
++
+ /* re-enable beaconing */
+ if (enable_beaconing &&
+ (sdata->vif.type == NL80211_IFTYPE_AP ||
--- /dev/null
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -1384,6 +1384,9 @@ static int ieee80211_set_power_mgmt(stru
+ struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+ struct ieee80211_conf *conf = &local->hw.conf;
+
++ if (sdata->vif.type != NL80211_IFTYPE_STATION)
++ return 0;
++
+ if (!(local->hw.flags & IEEE80211_HW_SUPPORTS_PS))
+ return -EOPNOTSUPP;
+