Files
openwrt/target/linux
Julius Bairaktaris e3c00e95ca qualcommax: qca_edma: free a completed frame with the budget of its caller
edma_clean_tx() passes its loop bound to napi_consume_skb() as the NAPI
budget. A non-zero budget tells that helper it is running inside a poll and
frees the frame into the per-CPU NAPI cache, which is only safe from
softirq context. edma_rings_drain() calls the same routine from process
context with INT_MAX - on an MTU change that alters the receive page order,
and on the probe error and remove paths - so a transmit completion on the
same CPU can interleave with the cache update.

The budget the poll was given becomes an argument of its own, zero on the
drain, which routes those frees through dev_consume_skb_any() instead.

Fixes: bdb0b722b7 ("qualcommax: add EDMA driver")
Assisted-by: Claude:claude-opus-5
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
Link: https://github.com/openwrt/openwrt/pull/25084
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-09 21:00:03 +02:00
..
2026-09-09 12:05:33 +02:00
…
2026-09-02 22:48:56 +02:00
2026-09-05 21:50:32 +02:00
2026-08-27 02:06:32 +02:00
…
…
…
2026-08-13 00:22:31 +02:00
2026-08-13 00:22:31 +02:00
2026-08-27 02:06:32 +02:00
2026-08-13 00:22:31 +02:00
…
…