Repository navigation
atbm606x-openipc: RX copies from kmalloc, as the other ATBM drivers since #2790 - #2791
Conversation
PR Summary by QodoPin atbm606x source with independent RX frame allocations
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
1. Wi-Fi driver change ships untested on a camera
|
Problem
#2455: the AltoBeam drivers copied each received frame with
dev_alloc_skb(), which carves it out of a 32 KiB page-frag block. One frame left queued keeps the whole block alive, while its socket is charged a few hundred bytes. #2790 fixed this inatbm-wifi,atbm60xxandatbm603x-comb-openipc. This PR does the same for the Wi-Fi 6 drop, which the xm535d2 uses.atbm606x-openipcmoves to OpenIPC/atbm_60xx8189706, a commit on OpenIPC/atbm_60xx#5. That is theatbm606xbranch the current pin5379d2aalready comes from. The change isalloc_skb()inatbm_alloc_bh_skb()(802.11 frames) and inwsm_rx_alloc_8023_frame()(frames the chip hands over as 802.3).Hardware tested on
Not run on a camera. qemu-bench doesn't model this Wi-Fi 6 chip, so this drop isn't measured. The same change, measured on the other drops, took an OOM within 30 s to flat (#2790).
Evidence
xm535d2_litebuilt with this source:atbm606x_wifi_usb.kobuilds, uImage 1104/2048 KB, rootfs 2664/5120 KB. The archive at the new pin is served throughopenipc/atbm_60xx(HTTP 200), as the old pin is.Scope
general/package/all-patches/linux/(those go to OpenIPC/linux)general/overlay/or in a sharedload_<vendor>script hardcodes a value specific to my boardLD_PRELOAD, and no binaries that cannot be rebuilt from source