[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y+NYphb8hmzlVFaV@unreal>
Date: Wed, 8 Feb 2023 10:09:10 +0200
From: Leon Romanovsky <leon@...nel.org>
To: Seunggyun Lee <sglee97@...kook.ac.kr>
Cc: bhelgaas@...gle.com, linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] pci/mmap: add pci device EBUSY check
On Tue, Feb 07, 2023 at 08:39:49PM +0900, Seunggyun Lee wrote:
> When using a pci device through the vfio-pci driver, other software was
> also able to access the pci device memory through sysfs.
And why is it wrong?
>
> To prevent this, when mmap is performed through sysfs, a process of
> checking whether the device is in use is added.
>
> Signed-off-by: Seunggyun Lee <sglee97@...kook.ac.kr>
> ---
> drivers/pci/mmap.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/pci/mmap.c b/drivers/pci/mmap.c
> index 4504039056d1..4c9df2e23e03 100644
> --- a/drivers/pci/mmap.c
> +++ b/drivers/pci/mmap.c
> @@ -25,6 +25,8 @@ int pci_mmap_resource_range(struct pci_dev *pdev, int bar,
> {
> unsigned long size;
> int ret;
> + if (pdev->driver)
> + return -1;
I doubt that it is correct/needed as every call to
pci_mmap_resource_range() is guarded by iomem_is_exclusive() check.
Also I'm not sure that pdev->driver can be accessed without any lock in
this flow.
Thanks
>
> size = ((pci_resource_len(pdev, bar) - 1) >> PAGE_SHIFT) + 1;
> if (vma->vm_pgoff + vma_pages(vma) > size)
> --
> 2.25.1
>
Powered by blists - more mailing lists