forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mac80211: add a fix for kernel warnings when forwarding packets in me…
…sh mode Signed-off-by: Felix Fietkau <nbd@nbd.name>
- Loading branch information
Showing
1 changed file
with
62 additions
and
0 deletions.
There are no files selected for viewing
62 changes: 62 additions & 0 deletions
62
...nel/mac80211/patches/subsys/306-mac80211-set-up-the-fwd_skb-dev-for-mesh-forwarding.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
From: Xing Song <xing.song@mediatek.com> | ||
Date: Tue, 23 Nov 2021 11:31:23 +0800 | ||
Subject: [PATCH] mac80211: set up the fwd_skb->dev for mesh forwarding | ||
|
||
Mesh forwarding requires that the fwd_skb->dev is set up for TX handling, | ||
otherwise the following warning will be generated, so set it up for the | ||
pending frames. | ||
|
||
[ 72.835674 ] WARNING: CPU: 0 PID: 1193 at __skb_flow_dissect+0x284/0x1298 | ||
[ 72.842379 ] Modules linked in: ksmbd pppoe ppp_async l2tp_ppp ... | ||
[ 72.962020 ] CPU: 0 PID: 1193 Comm: kworker/u5:1 Tainted: P S 5.4.137 #0 | ||
[ 72.969938 ] Hardware name: MT7622_MT7531 RFB (DT) | ||
[ 72.974659 ] Workqueue: napi_workq napi_workfn | ||
[ 72.979025 ] pstate: 60000005 (nZCv daif -PAN -UAO) | ||
[ 72.983822 ] pc : __skb_flow_dissect+0x284/0x1298 | ||
[ 72.988444 ] lr : __skb_flow_dissect+0x54/0x1298 | ||
[ 72.992977 ] sp : ffffffc010c738c0 | ||
[ 72.996293 ] x29: ffffffc010c738c0 x28: 0000000000000000 | ||
[ 73.001615 ] x27: 000000000000ffc2 x26: ffffff800c2eb818 | ||
[ 73.006937 ] x25: ffffffc010a987c8 x24: 00000000000000ce | ||
[ 73.012259 ] x23: ffffffc010c73a28 x22: ffffffc010a99c60 | ||
[ 73.017581 ] x21: 000000000000ffc2 x20: ffffff80094da800 | ||
[ 73.022903 ] x19: 0000000000000000 x18: 0000000000000014 | ||
[ 73.028226 ] x17: 00000000084d16af x16: 00000000d1fc0bab | ||
[ 73.033548 ] x15: 00000000715f6034 x14: 000000009dbdd301 | ||
[ 73.038870 ] x13: 00000000ea4dcbc3 x12: 0000000000000040 | ||
[ 73.044192 ] x11: 000000000eb00ff0 x10: 0000000000000000 | ||
[ 73.049513 ] x9 : 000000000eb00073 x8 : 0000000000000088 | ||
[ 73.054834 ] x7 : 0000000000000000 x6 : 0000000000000001 | ||
[ 73.060155 ] x5 : 0000000000000000 x4 : 0000000000000000 | ||
[ 73.065476 ] x3 : ffffffc010a98000 x2 : 0000000000000000 | ||
[ 73.070797 ] x1 : 0000000000000000 x0 : 0000000000000000 | ||
[ 73.076120 ] Call trace: | ||
[ 73.078572 ] __skb_flow_dissect+0x284/0x1298 | ||
[ 73.082846 ] __skb_get_hash+0x7c/0x228 | ||
[ 73.086629 ] ieee80211_txq_may_transmit+0x7fc/0x17b8 [mac80211] | ||
[ 73.092564 ] ieee80211_tx_prepare_skb+0x20c/0x268 [mac80211] | ||
[ 73.098238 ] ieee80211_tx_pending+0x144/0x330 [mac80211] | ||
[ 73.103560 ] tasklet_action_common.isra.16+0xb4/0x158 | ||
[ 73.108618 ] tasklet_action+0x2c/0x38 | ||
[ 73.112286 ] __do_softirq+0x168/0x3b0 | ||
[ 73.115954 ] do_softirq.part.15+0x88/0x98 | ||
[ 73.119969 ] __local_bh_enable_ip+0xb0/0xb8 | ||
[ 73.124156 ] napi_workfn+0x58/0x90 | ||
[ 73.127565 ] process_one_work+0x20c/0x478 | ||
[ 73.131579 ] worker_thread+0x50/0x4f0 | ||
[ 73.135249 ] kthread+0x124/0x128 | ||
[ 73.138484 ] ret_from_fork+0x10/0x1c | ||
|
||
Signed-off-by: Xing Song <xing.song@mediatek.com> | ||
--- | ||
|
||
--- a/net/mac80211/rx.c | ||
+++ b/net/mac80211/rx.c | ||
@@ -2947,6 +2947,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 | ||
if (!fwd_skb) | ||
goto out; | ||
|
||
+ fwd_skb->dev = sdata->dev; | ||
fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data; | ||
fwd_hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_RETRY); | ||
info = IEEE80211_SKB_CB(fwd_skb); |