[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] xen-pciback: Fix pcistub_device ref leak in pcistub_get_gsi_from_sbdf()
- To: Wentao Liang <vulab@xxxxxxxxxxx>
- From: "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
- Date: Thu, 17 Sep 2026 06:01:51 +0000
- Accept-language: en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kGFzhJ0we7FSexsT7KsViNjB4Z9b6XRi2aPaIDaAtjg=; b=flXtSs4Vq/Xt/mQr645lGFegtLLE/2RZbSvoOUfD7+3JeiKelXUVwEL9jGo8fnxIzUV1hKkUgwwFMPXJAvG8vKfVWq10zexjO8jf3YEVs334CXXyZu7/7KhWK+f0TaJ5JOT3e4t1XFSbc3uNQvgxNrkNa+Hkfp2MYHAjBBALI7XKmRr9mLXapdYNxpRDkyqeENaZWDuEcKP9D7bXh2rKnKCxc7ytDnXMEpTO/O0IcgX7wYbS4atFiFWkqde5mrj3P6vVwofN/ydbhpRtyoF6pvMKd6shgGF1eJ0ZCWvqQJd8f6dxO3U4K5+f7mtenwo79Ey8Y4YrnX9C9442ZDiGXQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ds5xOFjkOZb98/ARRhv1YrZ4IQofj7+9JFjeP5+cztzrk/a5QWCrfRd+C963TnaKpGQOHZO46Kp5g6IJ+yAH7MHSAXzF1zLYQUahNZXENKasTPSI1qgai45Jw2vRZrUPUmFM+u+dtikjbxiuzlNeWXq1hjY58Rx8q/PeLuym8sJ9ZH/zuxccz2wYlhNM0rYvxFuRdbys8a8xQz+nB141NEwqAsPP7me0ayTP3nC732K8w2RV/yeyZirprO/jjSfq7RxDWxzhbLAa+oafM1R8NlZz+Ly7bNvjUladkGi355r/e263FrTmT2eL2su/ut63xv9lHaFoWMNtT2u0NvGiFw==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
- Cc: "jgross@xxxxxxxx" <jgross@xxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, "oleksandr_tyshchenko@xxxxxxxx" <oleksandr_tyshchenko@xxxxxxxx>, "Huang, Ray" <Ray.Huang@xxxxxxx>, "sstabellini@xxxxxxxxxx" <sstabellini@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "stable@xxxxxxxxxxxxxxx" <stable@xxxxxxxxxxxxxxx>
- Delivery-date: Thu, 17 Sep 2026 06:02:39 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Thread-index: AQHdRf6GMogNWDJZT0qc64OaPhUu9bbSzYUA
- Thread-topic: [PATCH] xen-pciback: Fix pcistub_device ref leak in pcistub_get_gsi_from_sbdf()
On 9/17/26 01:11, Wentao Liang wrote:
> pcistub_get_gsi_from_sbdf() obtains the stub device with
> pcistub_device_find(), which returns it with its kref incremented, and
> returns psdev->gsi without dropping that reference again. The caller
> cannot release it either, so every lookup leaks one reference to the
> stub device.
>
> Release the reference after reading gsi.
>
> Fixes: 2fae6bb7be32 ("xen/privcmd: Add new syscall to get gsi from dev")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
Thanks.
Reviewed-by: Jiqian Chen <Jiqian.Chen@xxxxxxx>
> ---
> drivers/xen/xen-pciback/pci_stub.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/xen/xen-pciback/pci_stub.c
> b/drivers/xen/xen-pciback/pci_stub.c
> index 79a2b5dfd694..d1a335233aab 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -234,13 +234,16 @@ static int pcistub_get_gsi_from_sbdf(unsigned int sbdf)
> int bus = PCI_BUS_NUM(sbdf);
> int slot = PCI_SLOT(sbdf);
> int func = PCI_FUNC(sbdf);
> + int gsi;
>
> psdev = pcistub_device_find(domain, bus, slot, func);
> -
> if (!psdev)
> return -ENODEV;
>
> - return psdev->gsi;
> + gsi = psdev->gsi;
> + pcistub_device_put(psdev);
> +
> + return gsi;
> }
> #endif
>
--
Best regards,
Jiqian Chen.
|