[PATCH v2 0/2] dmaengine: idxd: Fix refcount and cleanup issues on module unload
From: Yi Sun <hidden>
Date: 2025-06-07 13:06:24
Also in:
lkml
This patch series addresses two issues related to the device reference counting and cleanup path in the idxd driver. Recent changes introduced improper put_device() calls and duplicated cleanup logic, leading to refcount underflow and potential use-after-free during module unload. Patch 1 removes an unnecessary call to idxd_free(), which could result in a use-after-free when paired with asynchronous put_device(). Patch 2 refactors the cleanup path to avoid redundant put_device() calls introduced in commit a409e919ca3. The existing idxd_unregister_devices() already handles proper device reference release. Both patches have been verified on hardware platform. Both patches have been run through `checkpatch.pl`. Patch 2 gets 1 error and 1 warning. But these appear to be limitations in the checkpatch script itself, not reflect issues with the patches. --- Changes in v2: - Reworded commit messages supplementing the call traces (Vinicius) - Explain why the put_device are unnecessary. (Vinicius) Yi Sun (2): dmaengine: idxd: Remove improper idxd_free dmaengine: idxd: Fix refcount underflow on module unload drivers/dma/idxd/init.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) -- 2.43.0