[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9b1b3405-26a2-4a30-b212-983568deccce@intel.com>
Date: Tue, 29 Jul 2025 08:06:06 -0700
From: Dave Jiang <dave.jiang@...el.com>
To: Yi Sun <yi.sun@...el.com>, vinicius.gomes@...el.com, vkoul@...nel.org,
fenghuay@...dia.com, xueshuai@...ux.alibaba.com
Cc: dmaengine@...r.kernel.org, linux-kernel@...r.kernel.org,
gordon.jin@...el.com
Subject: Re: [PATCH RESEND v3 0/2] dmaengine: idxd: Fix refcount and cleanup
issues on module unload
On 7/29/25 8:03 AM, Yi Sun wrote:
> 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, because the function idxd_conf_device_release already
> covers everything done in idxd_free. The newly added idxd_free in commit
> 90022b3 doesn't resolve any memory leaks, but introduces several duplicated
> cleanup.
>
> Patch 2 refactors the cleanup 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.
Reviewed-by: Dave Jiang <dave.jiang@...el.com>
for the series
>
> ---
> Changes in V3:
> - Removed function idxd_disable_sva which got removed recently (Vinicius)
> 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 | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
Powered by blists - more mailing lists