This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] WL1807MOD:MESH 和 AP:与5.4.56+及偶然"skbuff:SKB_UNDER_FANE&quot 兼容;

Guru**** 657930 points
Other Parts Discussed in Thread: WL1807MOD
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1190025/wl1807mod-mesh-and-ap-incompatible-with-5-4-56-and-occasional-skbuff-skb_under_panic

器件型号:WL1807MOD

我们在 i.MX6平台上针对 Linux 5.4使用了 WL1807MOD。 我知道只有4.19得到支持、但无论如何我想报告我们的结果。 以下是我们正在使用的补丁:

0002-wlcore-mesh-add-support-for-RX-Boradcast-Key.patch
0005-wlcore-patch.patch
0007-adding-support-to-IGTK-key-AES-CMAC128-in-the-wlcore.patch
0018-adding-support-for-AP-mesh-multi-role.patch
0023-wlcore-fixing-Pn-drift-on-encrypted-link-after -recov.patch
rev-3f15e3e62c80-beter-leake-than -crash.patch

除最后一项外、其余均来自 WiLink。 最后一个是 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.4.y&id=3f15e3e62c80的恢复 。 如果没有这种恢复、系统会在加载 wl18xx 后立即崩溃。 此提交是在 Linux v5.4.56中引入的。 换言之、WiLink 补丁中的内容取决于该内存泄漏。 有什么想法吗?  

此外、在某些环境中、内核崩溃并显示 "skbuffer:skb_under_pane"。 即使对于5.4.229内核也已验证该功能。 我注意到, https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/963451/wilink-sw-facing-skb-panic-when-connecting-mesh-devices-in-sae-authentication 上描述了同样的问题 ,但使用的是内核  4.19.59.换言之,这个问题似乎适用于各种 Linux 内核。 有什么建议吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    2023-01-24T15:30:22+0000 imx6ull14x14evk sshd[1895]: Timeout, client not responding from user admin 172.24.1.195 port 12815
    2023-01-24T15:30:22+0000 imx6ull14x14evk systemd[1]: sshd@0-172.24.1.1:22-172.24.1.195:12815.service: Succeeded.
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: skbuff: skb_under_panic: text:7374c860 len:158 put:16 head:2c36c147 data:b6d2be94 tail:0x9ba09c9c end:0x9ba09d00 dev:wlan0_mesh
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Modules linked in: iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 libcrc32c nf_defrag_ipv4 ip_tables x_tables lm75 wlcore_sdio qcaspi qca_7k_common wl18xx wlcore mac80211 cfg80211
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: CPU: 0 PID: 184 Comm: irq/178-wl18xx Not tainted 5.4.229-garo-1 #1
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Hardware name: Freescale i.MX6 Ultralite (Device Tree)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: PC is at skb_panic+0x60/0x64
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: LR is at skb_panic+0x60/0x64
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: pc : [<80a767ac>]    lr : [<80a767ac>]    psr: 60030013
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: sp : 9b0ffe28  ip : 00000000  fp : 9b787840
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: r10: 00000002  r9 : 00000000  r8 : 9b2b6e88
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: r7 : 9b031680  r6 : 00000001  r5 : 9ba09c9c  r4 : 9ba09bfe
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: r3 : 81004f08  r2 : 00000000  r1 : 9db45414  r0 : 0000007f
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Control: 10c5387d  Table: 9b17406a  DAC: 00000051
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Process irq/178-wl18xx (pid: 184, stack limit = 0x3ba87ba0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Stack: (0x9b0ffe28 to 0x9b100000)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fe20:                   00000010 9ba09c00 9ba09bfe 9ba09c9c 9ba09d00 9b2b6000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fe40: 9b031680 808e6580 00000000 0000009e 00000001 7f10fdfc 9b0ffe9f 9b031680
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fe60: 00000000 00000005 00000000 9ad90180 00000001 00000000 00000000 00147201
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fe80: 000fac01 00000000 000fac02 7f120564 7f1209b8 00000000 00000000 ff05fffc
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fea0: 00000000 81004f08 00000000 9b0316ac 00000040 9b2b4ea4 00000001 00000002
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fec0: 00000060 9b031680 9b0317b4 7f105b74 00000000 fffffff1 9b8690c0 7f125e00
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fee0: 7f11e12c 9b032488 000000ff 00000076 9b0316d8 9b0317b4 9b0fff3c 9b031680
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ff00: 9b0316ac 60030013 9b0316d8 9b0316c4 9b031860 ffffe000 00000000 7f107e74
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ff20: 9ae133c0 9a174800 9b0fe000 00000001 9ae133c0 8016b660 ffffe000 8016b67c
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ff40: 9a174800 9ae133e4 9b0fe000 8016ba64 00000000 00000000 8016b714 81004f08
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ff60: 9b0fff74 9ad92040 9ae13ac0 9b0fe000 00000000 9ae133c0 8016b910 9a8a9e1c
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ff80: 9ad9205c 801409b4 00000000 9ae13ac0 80140864 00000000 00000000 00000000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ffa0: 00000000 00000000 00000000 801010e8 00000000 00000000 00000000 00000000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80a767ac>] (skb_panic) from [<808e6580>] (__skb_checksum+0x0/0x328)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<808e6580>] (__skb_checksum) from [<00000000>] (0x0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Code: e34800e1 e58d3014 e59c3054 ebffcc5d (e7f001f2) 
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: ---[ end trace b95c2649d2c4cba5 ]---
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: genirq: exiting task "irq/178-wl18xx" (184) is an active IRQ thread (irq 178)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: irq 178: nobody cared (try booting with the "irqpoll" option)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: CPU: 0 PID: 184 Comm: irq/178-wl18xx Tainted: G      D           5.4.229-garo-1 #1
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Hardware name: Freescale i.MX6 Ultralite (Device Tree)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<801101f0>] (unwind_backtrace) from [<8010b51c>] (show_stack+0x10/0x14)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8010b51c>] (show_stack) from [<80a76eac>] (dump_stack+0x90/0xa4)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80a76eac>] (dump_stack) from [<80a69bbc>] (__report_bad_irq+0x3c/0xc0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80a69bbc>] (__report_bad_irq) from [<8016e21c>] (note_interrupt+0x264/0x2b0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8016e21c>] (note_interrupt) from [<8016a8dc>] (handle_irq_event_percpu+0x80/0x88)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8016a8dc>] (handle_irq_event_percpu) from [<8016a91c>] (handle_irq_event+0x38/0x5c)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8016a91c>] (handle_irq_event) from [<8016ede4>] (handle_level_irq+0xb8/0x13c)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8016ede4>] (handle_level_irq) from [<801699fc>] (generic_handle_irq+0x24/0x34)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<801699fc>] (generic_handle_irq) from [<804af230>] (mxc_gpio_irq_handler+0x40/0xf8)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<804af230>] (mxc_gpio_irq_handler) from [<804afb68>] (mx3_gpio_irq_handler+0x60/0xac)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<804afb68>] (mx3_gpio_irq_handler) from [<801699fc>] (generic_handle_irq+0x24/0x34)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<801699fc>] (generic_handle_irq) from [<80169fe0>] (__handle_domain_irq+0x5c/0xb0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80169fe0>] (__handle_domain_irq) from [<8049c3c8>] (gic_handle_irq+0x4c/0x90)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8049c3c8>] (gic_handle_irq) from [<80101b0c>] (__irq_svc+0x6c/0xa8)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Exception stack(0x9b0ffbf0 to 0x9b0ffc38)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fbe0:                                     00208044 80f84e80 00000000 1cbc7000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fc00: 00000002 00000000 00000000 00000001 9b0fe000 9b0ffcd8 9b0ffc40 ffffe000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fc20: 540a3b30 9b0ffc40 80126470 801022c0 60030113 ffffffff
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80101b0c>] (__irq_svc) from [<801022c0>] (__do_softirq+0x98/0x278)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<801022c0>] (__do_softirq) from [<80126470>] (irq_exit+0xb0/0xd8)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80126470>] (irq_exit) from [<80169fe4>] (__handle_domain_irq+0x60/0xb0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80169fe4>] (__handle_domain_irq) from [<8049c3c8>] (gic_handle_irq+0x4c/0x90)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8049c3c8>] (gic_handle_irq) from [<80101b0c>] (__irq_svc+0x6c/0xa8)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Exception stack(0x9b0ffcd8 to 0x9b0ffd20)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fcc0:                                                       9a174868 a08bc014
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fce0: 9a174800 00009125 9a174800 9ae133c0 9a174868 9a174814 9a5b3cd4 9a5b3cb0
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fd00: 9a5b3840 ffffe000 00000000 9b0ffd28 8016b568 80a7d100 20030013 ffffffff
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80101b0c>] (__irq_svc) from [<80a7d100>] (_raw_spin_unlock_irq+0x1c/0x4c)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80a7d100>] (_raw_spin_unlock_irq) from [<8016b568>] (irq_finalize_oneshot.part.0+0x84/0xd4)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8016b568>] (irq_finalize_oneshot.part.0) from [<8013e420>] (task_work_run+0x8c/0xa8)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8013e420>] (task_work_run) from [<80124fc4>] (do_exit+0x374/0xabc)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80124fc4>] (do_exit) from [<8010b88c>] (die+0x36c/0x378)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8010b88c>] (die) from [<8010bb2c>] (do_undefinstr+0x144/0x1d0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<8010bb2c>] (do_undefinstr) from [<80101be8>] (__und_svc_finish+0x0/0x38)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Exception stack(0x9b0ffdd8 to 0x9b0ffe20)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fdc0:                                                       0000007f 9db45414
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fde0: 00000000 81004f08 9ba09bfe 9ba09c9c 00000001 9b031680 9b2b6e88 00000000
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: fe00: 00000002 9b787840 00000000 9b0ffe28 80a767ac 80a767ac 60030013 ffffffff
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80101be8>] (__und_svc_finish) from [<80a767ac>] (skb_panic+0x60/0x64)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<80a767ac>] (skb_panic) from [<808e6580>] (__skb_checksum+0x0/0x328)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<808e6580>] (__skb_checksum) from [<00000000>] (0x0)
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: handlers:
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: [<70c4bc2a>] irq_default_primary_handler threaded [<611c88e3>] wlcore_irq [wlcore]
    2023-01-24T15:53:58+0000 imx6ull14x14evk kernel: Disabling IRQ #178
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    修补程序#23还需要最新的固件8.9.1.0.0。 您是否正在使用最新的固件?

    此致、

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我们在更新到最新固件时引入了补丁#23 (因为这是必需的)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我会研究一下、并告诉您。

    这是仅限 SAE 还是同时在开放模式下发生?

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在我们已更改、因此 wpa_supplicant 在  key_mgmt=none 下运行、但问题仍然发生。 有什么建议吗?

    另外、关于补丁和内核版本的未来计划是什么? 当前采用 WiLink 8.8的解决方案现在包含许多补丁。 在某些情况下、可更改早期补丁的补丁、已在上游社区中拒绝的补丁以及不带描述的补丁。  Linux 4.19的要求也有问题。 此 Linux 版本将于2024年12月停产。 这只是22个月的时间。 因此、基于该内核构建新产品毫无意义。 NXP 等其他供应商已迁移至更高版本的内核。  

    我们非常感谢大家为实现基于 Linux 5.4等的稳定解决方案而付出的努力。 我们能否共同努力实现这一目标?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的更新。

    实际上、我目前正在集成新的 wpa_supplicant。

    几年前、随着我们从内核4.4.x 移动到了4.19.38、我们现在也要讨论迁移到5.x、但目前还没有时间表。

    无论如何、至少使用 WiLink 时、目前没有计划将其上行到主内核存储库。

    您选择仅获取特定内核补丁的任何原因?

    此外、您正在使用哪种 WPA 请求?

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在我们已更改、因此 wpa_supplicant 在  key_mgmt=none 下运行、但问题仍然发生。 有什么建议吗?

    [/报价]

    我们说得太快了-实际上、禁用 SAE 后、问题似乎消失了。

    我很快就会跟进并提供更多答复和信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢更新、请在有更新后分享更多详细信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您选择仅获取特定内核补丁的任何原因?

    [/报价]

    可以。 在 Linux 5.4.X 中、已经包含了一些补丁、对于此内核版本来说、这些补丁是不必要的、甚至是错误的。 修补程序的目的没有很好地描述。 在许多情况下、描述的是正在更改的内容、而不是其基本目的。 在某些情况下、例如对于0004和0005、根本没有描述。  

    我现在已经分析了所有修补程序,并在 https://github.com/astrand/wilink8-wlan-build-utilites/wiki 上对此进行了总结 。  

    如果我理解正确、补丁0003甚至不适用于您的建议版本4.19.38、因为该功能自4.8以来就已包含在上游 Linux 中。

    此外、您正在使用哪种 WPA 请求?

    [/报价]

    我们目前正在使用上游开发版本(https://w1.fi/cgit/hostap/commit/?id=f725254cc1297532a553de9fa5af8484ec95cda4)、其中包含一些自定义补丁。 我们知道我们需要自己支持此版本、但在任何情况下、wpa_supplicant 等用户空间应用程序都不会导致内核崩溃、因此 skb_under_panic 确实是一个内核错误。 当然、此版本的 wpa_supplicant 会触发 skb_under_panic 问题、并解释了为何没有得到此问题。

    无论如何、至少使用 WiLink 时、目前没有计划将其上行到主内核存储库。

    [/报价]

    无需对所有 WiLink 进行上游处理、尤其是增加功能时。 但是、当涉及到驱动程序中的实际错误或需要更改以使用最新固件时、我认为这些内容应该会被推到上行。 正如我的维基网页所显示的那样,这种努力是过去作出的。

    驱动程序和固件之间的接口存在很大问题。 最新固件显然包括  安全性 修正、但此固件 "要求升级至最新的驱动程序"、而此驱动程序 仅在 Linux 4.19.38上受支持。 因此,不使用此版本的其他 Linux 社区可能无法获得此安全更正。  

    关于"skb_under_pana"的主要问题、我们将对标记为"??"的补丁进行额外的测试 如果您有任何建议、我们将不胜感激。

    [/quote]
    [/quote][/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的更新、

    至少说到固件驱动程序接口的最后一条评论、我同意。 然而、由于发现了主要错误、没有其他选项、唯一的选项是修改 API (更准确地说是来自固件的事件)。 这里当然重点介绍了软件包、另外还添加了一种用于检查版本的机制、以便至少不会加载固件。

    此安全修补程序实际上只是作为一种颜料重新添加到顶部、但它不是发布的主要贡献者。

    最后、由于源代码函数受到限制并且在很长一段时间内未更改、因此将驱动程序补丁与后续内核版本集成在一起应该微不足道。 不管怎样、它的实现方式可能有所不同、以便也能够在不崩溃的情况下加载旧的驱动程序版本。

    此致、

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于"skb_unders_panic"的主要问题,我们将对标记为"???"的修补程序执行其他测试 在我的表中

    我们现在已经完成了这样的测试、但不幸的是、内核仍会崩溃、出现 skb_under_panic。 我们用于此测试的修补程序列表是:


    0002-wlcore-mesh-add-support-for-RX-Boradcast-Key.patch
    0004-mac80211-patch.patch
    0010-mac80211-mesh-fixed-ht-ies-in-beach-template.patch
    0011-mesh-bypass-blockack-encryption-workaround.patch
    0012-mesh-frages-receive-out-of-order.patch
    0018-adding-support-for-AP-mesh-multi-role.patch
    0023-wlcore-fixing-Pn-drift-on-encrypted-link-after -recov.patch
    rev-3f15e3e62c80-beter-leake-than -crash.patch

    这个错误对我们来说是一个主要问题、有什么建议如何处理?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们现在已成功地利用所有推荐的增补程序在5.0.21中重现了此问题。 Linux 5.0系列基于4.20、因此与您支持的4.19并不远。 如果我们设法在 Linux 4.20或4.19中重现此问题、是否会有区别 ?在此情况下、您能提供任何其他帮助吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在4.19上复制将是完美的。

    您能否再次说明一下、如果该问题也是在没有安全性的情况下发生的、因为您在前面提到过、如果未使用 SAE、则不会发生这种情况。

    此致、

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    经过大量迁移到4.19的工作,我们已经能够重现"skb_under_pana"问题与4.19 :

    skbuff: skb_under_panic: text:c7703318 len:158 put:16 head:cf7a8af6 data:10cc3c43 tail:0x9c9d269c end:0x9c9d2740 dev:wlan0_mesh
    Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM
    Modules linked in: iptable_filter iptable_nat nf_nat_ipv4 nf_nat nf_conntrack nf_defrag_ipv6 libcrc32c nf_defrag_ipv4 ip_tables x_tables lm75 wlcore_sdio qcaspi qca_7k_common wl18xx wlcore mac80211 cfg80211
    CPU: 0 PID: 124 Comm: kworker/u2:2 Not tainted 4.19.38-g-1 #1
    Hardware name: Freescale i.MX6 UltraLite (Device Tree)
    Workqueue: phy0 wl1271_tx_work [wlcore]
    PC is at skb_panic+0x60/0x64
    LR is at skb_panic+0x60/0x64
    pc : [<80861bbc>]    lr : [<80861bbc>]    psr: 60070013
    sp : 9cabfe78  ip : 00000002  fp : 9d2f0300
    r10: 00000002  r9 : 00000000  r8 : 9c7d2d9c
    r7 : 9c614d20  r6 : 00000001  r5 : 9c9d269c  r4 : 9c9d25fe
    r3 : 80f04d08  r2 : 00000000  r1 : 80c1dd74  r0 : 0000007f
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    Control: 10c53c7d  Table: 9d40006a  DAC: 00000051
    Process kworker/u2:2 (pid: 124, stack limit = 0x53236fc1)
    Stack: (0x9cabfe78 to 0x9cac0000)
    fe60:                                                       00000010 9c9d2600
    fe80: 9c9d25fe 9c9d269c 9c9d2740 9c7d2000 809c60d8 8085aaf8 00000000 0000009e
    fea0: 00000001 7f10aae4 9cabfeef 809c612c 9fbda180 00000005 00000000 9cacdd80
    fec0: 00000001 9d31c000 00000000 00147201 000fac01 00000000 000fac02 7f11b438
    fee0: 9d367000 00000000 9ca57688 ff054d08 00000000 80f04d08 00000004 9c614ef8
    ff00: 9c614d5c 9c614d20 9ce30900 00000000 9c614efc 00000000 9cabe000 7f10b640
    ff20: 9c614ef8 9c8a6680 9c004200 801464bc 00000088 9c004218 9c8a6680 9c8a6694
    ff40: 9c004200 00000088 9c004218 80f03d00 9c004200 801471cc ffffe000 80fa65c0
    ff60: 9c591ebc 9c90cd80 9cabca40 00000000 9cabe000 9c8a6680 80147180 9c90cd9c
    ff80: 9c591ebc 8014c0c4 00000000 9cabca40 8014bfa4 00000000 00000000 00000000
    ffa0: 00000000 00000000 00000000 801010e8 00000000 00000000 00000000 00000000
    ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
    [<80861bbc>] (skb_panic) from [<8085aaf8>] (__skb_to_sgvec+0x0/0x278)
    [<8085aaf8>] (__skb_to_sgvec) from [<00147201>] (0x147201)
    Code: e34800cc e58d3014 e59c305c ebe443b6 (e7f001f2)
    ---[ end trace 378110a279f72e5f ]---
    

    这随您推荐的所有增补程序一起提供。

    您能提供帮助吗?

    未使用 SAE 时、我们无法重现问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以补充一点、当内核获得上面的"skb_under_pane"时、/sys/kernel/debug/ieee80211/phy0/wlcore/tx_queue_len 是17。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    "对不起,我不小心给弄丢了。"

    在上面的另一个 E2E 链接中、我们提到了很难重现并需要连接多个站。

    您能否详细说明您所处的确切条件/环境是什么?

    此外、最好知道为重现此问题所采取的确切步骤、以便我可以自行尝试。

    此致、

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好。 Mesh 组由3个节点组成。 在附近还有其他未参与此组的 WiFi 网络。 使用 CCMP 和 SAE。 崩溃通常会在几个小时后发生。  

    显然、这是某种内存损坏。 如果很难重现、也许可以从调试开始更容易、为什么此补丁 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.4.y&id=3f15e3e62c80 与 WiLink 不兼容? 使用该补丁、即5.4.70、至少对我们来说、在 Mesh 启动时、内核会立即崩溃。 我怀疑这两个 问题是由同一个问题引起的。

    上述承诺适用于5.4系列、但可能也适用于4.19? 它是一行修复、所以很容易尝试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我不确定它是否与已恢复的补丁相关、并且很难看到它为什么会立即崩溃。

    至少对于实际的崩溃,如果它发生在你身边只有几个小时,将是具有挑战性的。

    如果我想尝试重现、我需要获取更多器件。

    只是为了了解相关设置、您提到了3个器件、都是通过网状网络进行通信? 还是通过传统工作站/AP 连接的某些器件? 因为您提到了网状网络/AP 角色。 "你在干什么?"

    我正在尝试了解您的设置中数据/服务的设置、角色和类型。

    此致、

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为了理解设置,您刚才提到了3台设备,都是通过网状通信的吗? 还是通过传统工作站/AP 连接的某些器件? 因为您提到了网状网络/AP 角色。 此外,您正在执行哪种流量[/报价]

    是的、所有3个器件都通过网状网络进行通信。 AP 模式(和 hostapd)在所有器件上也都处于运行状态、但没有器件连接到这些 AP。 流量是低带宽的 TCP/HTTP 通信。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、感谢您的澄清。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    更新、我能够抓取另一个 BBB、因此总共有两个单元。

    我曾尝试像往常一样使用 AP+Mesh、对网状网络进行双向 TCP 吞吐量(没有连接到 AP 的站点)@100Kbps。

    我离开了它运行了几天,但什么也没有。

    您认为是第三个设备可能导致内核恐慌吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可以、这是可以实现的。

    我们注意到、在 cmd.c 中有一些 skb 调用是在不检查是否有足够的可用空间的情况下进行的。 我们正在为此尝试一种补丁、目前正在评估这是否有帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、我将尝试用手拿另一个。  

    如果你有任何问题,请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们做了一个补丁,试图改善 skb 处理。 其他测试尚待处理、但我在下面分享:

    diff -Naru org/drivers/net/wireless/ti/wlcore/cmd.c mod/drivers/net/wireless/ti/wlcore/cmd.c
    --- org/drivers/net/wireless/ti/wlcore/cmd.c	2023-02-20 07:52:48.234966433 +0100
    +++ mod/drivers/net/wireless/ti/wlcore/cmd.c	2023-02-22 13:39:29.343299684 +0100
    @@ -1278,15 +1278,29 @@
     	}
     
     	if (extra) {
    -		u8 *space = skb_push(skb, extra);
    -		memset(space, 0, extra);
    +		if (skb_headroom(skb) < extra && pskb_expand_head(skb, extra, 0, GFP_ATOMIC)) {
    +			wl1271_error("skb push debug, ti/cmd#1\n");
    +			ret = -ENOMEM;
    +			goto out;
    +		}
    +		memset(skb_push(skb, extra), 0, extra);
     	}
     
     	/* QoS header - BE */
    -	if (wlvif->sta.qos)
    +	if (wlvif->sta.qos) {
    +		if (skb_headroom(skb) < sizeof(__le16) && pskb_expand_head(skb, sizeof(__le16), 0, GFP_ATOMIC)) {
    +			wl1271_error("skb push debug, ti/cmd#2\n");
    +			ret = -ENOMEM;
    +			goto out;
    +		}
     		memset(skb_push(skb, sizeof(__le16)), 0, sizeof(__le16));
    -
    +	}
     	/* mac80211 header */
    +	if (skb_headroom(skb) < sizeof(*hdr) && pskb_expand_head(skb, sizeof(*hdr), 0, GFP_ATOMIC)) {
    +		wl1271_error("skb push debug, ti/cmd#3\n");
    +		ret = -ENOMEM;
    +		goto out;
    +	}
     	hdr = skb_push(skb, sizeof(*hdr));
     	memset(hdr, 0, sizeof(*hdr));
     	fc = IEEE80211_FTYPE_DATA | IEEE80211_FCTL_TODS;
    diff -Naru org/drivers/net/wireless/ti/wlcore/tx.c mod/drivers/net/wireless/ti/wlcore/tx.c
    --- org/drivers/net/wireless/ti/wlcore/tx.c	2023-02-20 07:52:48.250966336 +0100
    +++ mod/drivers/net/wireless/ti/wlcore/tx.c	2023-02-22 13:40:39.454976529 +0100
    @@ -210,6 +210,13 @@
     	total_blocks = wlcore_hw_calc_tx_blocks(wl, total_len, spare_blocks);
     
     	if (total_blocks <= wl->tx_blocks_available) {
    +		if (skb_headroom(skb) < (total_len - skb->len) &&
    +		    pskb_expand_head(skb, (total_len - skb->len), 0, GFP_ATOMIC)) {
    +			wl1271_free_tx_id(wl, id);
    +			dev_kfree_skb(skb);
    +			wl1271_error("skb push debug, ti/tx\n");
    +			return -ENOMEM;
    +		}
     		desc = skb_push(skb, total_len - skb->len);
     
     		wlcore_hw_set_tx_desc_blocks(wl, desc, total_blocks,
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Peter 的更新。

    如果您发现了什么、请告诉我。

    Shlomi.