X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fkernel%2Fmac80211%2Fpatches%2Fsubsys%2F310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch;fp=package%2Fkernel%2Fmac80211%2Fpatches%2Fsubsys%2F310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch;h=4853cef723171e82906dabb649a08ce4bf7d2412;hb=fb45887e85ca42c95f80fb9a3147d98b3edc7724;hp=f362751e0a3ba4db138d455dda1a0bd45dc156b2;hpb=4883e4c04f13b3d7d37a379180583a3b48031aa9;p=openwrt%2Fopenwrt.git diff --git a/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch b/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch index f362751e0a..4853cef723 100644 --- a/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch +++ b/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch @@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau struct ieee80211_fast_tx fast_tx; u8 hdr[sizeof(struct ieee80211s_hdr) + sizeof(rfc1042_header)]; -@@ -334,7 +358,8 @@ void mesh_path_tx_root_frame(struct ieee +@@ -333,7 +357,8 @@ void mesh_path_tx_root_frame(struct ieee bool mesh_action_is_path_sel(struct ieee80211_mgmt *mgmt); struct ieee80211_mesh_fast_tx * @@ -175,12 +175,12 @@ Signed-off-by: Felix Fietkau + ether_addr_copy(key.addr, addr); cache = &sdata->u.mesh.tx_cache; spin_lock_bh(&cache->walk_lock); -- entry = rhashtable_lookup(&cache->rht, addr, fast_tx_rht_params); +- entry = rhashtable_lookup_fast(&cache->rht, addr, fast_tx_rht_params); - if (entry) - mesh_fast_tx_entry_free(cache, entry); + for (i = MESH_FAST_TX_TYPE_LOCAL; i < MESH_FAST_TX_TYPE_FORWARDED; i++) { + key.type = i; -+ entry = rhashtable_lookup(&cache->rht, &key, fast_tx_rht_params); ++ entry = rhashtable_lookup_fast(&cache->rht, &key, fast_tx_rht_params); + if (entry) + mesh_fast_tx_entry_free(cache, entry); + } @@ -189,7 +189,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -2727,7 +2727,10 @@ ieee80211_rx_mesh_fast_forward(struct ie +@@ -2726,7 +2726,10 @@ ieee80211_rx_mesh_fast_forward(struct ie struct sk_buff *skb, int hdrlen) { struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; @@ -201,7 +201,7 @@ Signed-off-by: Felix Fietkau struct ieee80211s_hdr *mesh_hdr; struct tid_ampdu_tx *tid_tx; struct sta_info *sta; -@@ -2736,9 +2739,13 @@ ieee80211_rx_mesh_fast_forward(struct ie +@@ -2735,9 +2738,13 @@ ieee80211_rx_mesh_fast_forward(struct ie mesh_hdr = (struct ieee80211s_hdr *)(skb->data + sizeof(eth)); if ((mesh_hdr->flags & MESH_FLAGS_AE) == MESH_FLAGS_AE_A5_A6)