summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/300-pending_work.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/300-pending_work.patch')
-rw-r--r--package/mac80211/patches/300-pending_work.patch18
1 files changed, 9 insertions, 9 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index 1e25e352c..219144c0b 100644
--- a/package/mac80211/patches/300-pending_work.patch
+++ b/package/mac80211/patches/300-pending_work.patch
@@ -180,7 +180,7 @@
static void ieee80211_iface_work(struct work_struct *work)
{
struct ieee80211_sub_if_data *sdata =
-@@ -1101,6 +1144,9 @@ static void ieee80211_iface_work(struct
+@@ -1101,6 +1144,9 @@ static void ieee80211_iface_work(struct
break;
ieee80211_mesh_rx_queued_mgmt(sdata, skb);
break;
@@ -281,6 +281,13 @@
+ list_for_each_entry_rcu(sdata, &local->interfaces, list) {
+ if (!sdata->dev)
+ continue;
++
++ if (skb->dev != sdata->dev)
++ continue;
++
++ found = true;
++ break;
++ }
- p2p_sdata = rcu_dereference(local->p2p_sdata);
- if (p2p_sdata) {
@@ -289,18 +296,11 @@
- skb->len, acked, GFP_ATOMIC);
- }
- rcu_read_unlock();
-+ if (skb->dev != sdata->dev)
-+ continue;
-+
-+ found = true;
-+ break;
- }
-+
+ if (!skb->dev) {
+ sdata = rcu_dereference(local->p2p_sdata);
+ if (sdata)
+ found = true;
-+ }
+ }
+
+ if (!found)
+ skb->dev = NULL;