Re: [PATCH V4 05/18] iommu/ioasid: Redefine IOASID set and allocation APIs
From: David Gibson <hidden>
Date: 2021-05-27 07:12:45
Also in:
linux-iommu, lkml
On Wed, May 26, 2021 at 02:48:03AM +0530, Kirti Wankhede wrote:
On 5/26/2021 1:22 AM, Jason Gunthorpe wrote:quoted
On Wed, May 26, 2021 at 12:56:30AM +0530, Kirti Wankhede wrote:quoted
2. iommu backed mdev devices for SRIOV where mdev device is created per VF (mdev device == VF device) then that mdev device has same iommu protection scope as VF associated to it.This doesn't require, and certainly shouldn't create, a fake group. Only the VF's real IOMMU group should be used to model an iommu domain linked to a VF. Injecting fake groups that are proxies for real groups only opens the possibility of security problems like David is concerned with.I think this security issue should be addressed by letting mdev device inherit its parent's iommu_group, i.e. VF's iommu_group here.
No, that doesn't work. AIUI part of the whole point of mdevs is to allow chunks of a single PCI function to be handed out to different places, because they're isolated from each other not by the system IOMMU, but by a combination of MMU hardware in the hardware (e.g. in a GPU card) and software in the mdev driver. If mdevs inherited the group of their parent device they wouldn't count as isolated from each other, which they should.
Kirtiquoted
Max's series approaches this properly by fully linking the struct pci_device of the VF throughout the entire VFIO scheme, including the group and container, while still allowing override of various VFIO operations. Jason
-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson