lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 18 Aug 2017 11:04:33 -0500
From:   Bjorn Helgaas <helgaas@...nel.org>
To:     Jon Derrick <jonathan.derrick@...el.com>
Cc:     linux-pci@...r.kernel.org, iommu@...ts.linux-foundation.org,
        David Woodhouse <dwmw2@...radead.org>,
        Keith Busch <keith.busch@...el.com>,
        Scott Bauer <scott.bauer@...el.com>,
        David Fugate <david.fugate@...el.com>,
        linux-kernel@...r.kernel.org, Robin Murphy <robin.murphy@....com>
Subject: Re: [PATCH v2 4/4] iommu: Prevent VMD child devices from being
 remapping targets

[+cc Robin]

This series looks fine to me as far as PCI is concerned, and I'd be
happy to take it via my tree given an ack from David for this IOMMU
piece.  Alternatively, you can add my

Acked-by: Bjorn Helgaas <bhelgaas@...gle.com>

to the other patches if you want to take it via another tree.

Robin raised a question about basically this same patch the first time
around.  Not sure whether there's still an objection there.

On Thu, Aug 17, 2017 at 12:10:14PM -0600, Jon Derrick wrote:
> VMD child devices must use the VMD endpoint's ID as the requester.
> Because of this, there needs to be a way to link the parent VMD
> endpoint's iommu group and associated mappings to the VMD child devices
> such that attaching and detaching child devices modify the endpoint's
> mappings, while preventing early detaching on a singular device removal
> or unbinding.
> 
> The reassignment of individual VMD child devices devices to VMs is
> outside the scope of VMD, but may be implemented in the future. For now
> it is best to prevent any such attempts.
> 
> This patch prevents VMD child devices from returning an IOMMU, which
> prevents it from exposing an iommu_group sysfs directories and allowing
> subsequent binding by userspace-access drivers such as VFIO.
> 
> Signed-off-by: Jon Derrick <jonathan.derrick@...el.com>
> ---
>  drivers/iommu/intel-iommu.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
> index 687f18f..94353a6e 100644
> --- a/drivers/iommu/intel-iommu.c
> +++ b/drivers/iommu/intel-iommu.c
> @@ -901,6 +901,11 @@ static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devf
>  		struct pci_dev *pf_pdev;
>  
>  		pdev = to_pci_dev(dev);
> +
> +		/* VMD child devices currently cannot be handled individually */
> +		if (is_vmd(pdev->bus))
> +			return NULL;
> +
>  		/* VFs aren't listed in scope tables; we need to look up
>  		 * the PF instead to find the IOMMU. */
>  		pf_pdev = pci_physfn(pdev);
> -- 
> 2.9.4
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ