Re: [PATCH v3 1/2] ieee802154: cc2520: fix FIFOP work use-after-free

From: Miquel Raynal

Date: Tue Aug 11 2026 - 04:02:23 EST



> The FIFOP interrupt handler queues cc2520_fifop_irqwork. On removal,
> cc2520_remove() only flushes the work. The devm-managed FIFOP IRQ
> remains active until after ->remove() returns and can queue the work
> again after that flush, allowing it to run after the private data is
> released.
>
> Disable the work with disable_work_sync() instead of flushing it, so
> the handler can no longer queue it once removal begins. Destroy the
> buffer mutex last, since the worker and the stop callback invoked
> through ieee802154_unregister_hw() both take it.
>
> Found by an in-house static analysis tool.
>
> Fixes: 0da6bc8cc341 ("ieee802154: cc2520: adds driver for TI CC2520 radio")
> Cc: stable@xxxxxxxxxxxxxxx # v6.10+
> Suggested-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> Assisted-by: Codex:gpt-5.6
> Signed-off-by: Fan Wu <fanwu01@xxxxxxxxxx>

Reviewed-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>