Thread (6 messages) flat view 6 messages, 2 authors, 1d ago

Re: [PATCH net v2 1/2] mac802154: serialize and drain queued RX descriptors

From: Miquel Raynal <miquel.raynal@bootlin.com>
Date: 2026-09-04 16:27:19
Also in: lkml, stable

On 03/09/2026 at 20:32:01 +08, Xuanqiang Luo [off-list ref] wrote:
From: Xuanqiang Luo <redacted>

queue_work() coalesces attempts to queue an already pending work item.
The RX workers, however, consume only one descriptor per invocation. A
burst can therefore leave later descriptors queued until another frame
arrives, while the final descriptor may remain queued indefinitely.

The RX tasklet, workers, and scan cleanup also access the descriptor
lists without synchronization.

Protect both lists with a spinlock. Publish each descriptor and queue its
work while holding the lock. Remove each descriptor from the list before
processing it and, if another descriptor remains, queue the work again so
it runs after the current invocation.

Fixes: 57588c71177f ("mac802154: Handle passive scanning")
Fixes: d021d218f6d9 ("mac802154: Handle received BEACON_REQ")
Cc: stable@vger.kernel.org
Signed-off-by: Xuanqiang Luo <redacted>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help