RE: [RFC 3/7] iommufd: Add iommufd_device_bind_pasid()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Liu, Yi L <yi.l.liu@xxxxxxxxx>
> Sent: Monday, October 9, 2023 4:51 PM
>
> +struct iommufd_device *iommufd_device_bind_pasid(struct iommufd_ctx
> *ictx,
> +						 struct device *dev,
> +						 u32 pasid, u32 *id)
> +{
> +	struct iommufd_device *idev;
> +	int rc;
> +
> +	/*
> +	 * iommufd always sets IOMMU_CACHE because we offer no way for
> userspace
> +	 * to restore cache coherency.
> +	 */
> +	if (!device_iommu_capable(dev, IOMMU_CAP_CACHE_COHERENCY))
> +		return ERR_PTR(-EINVAL);
> +
> +	/*
> +	 * No iommu supports pasid-granular msi message today. Here we
> +	 * just check whether the parent device can do safe interrupts.
> +	 * Isolation between virtual devices within the parent device
> +	 * relies on the parent driver to enforce.
> +	 */
> +	if (!iommufd_selftest_is_mock_dev(dev) &&
> +	    !msi_device_has_isolated_msi(dev)) {
> +		rc = iommufd_allow_unsafe_interrupts(dev);
> +		if (rc)
> +			return ERR_PTR(rc);
> +	}
> +

Only MemWr w/o pasid can be interpreted as an interrupt message
then we need msi isolation to protect.

But for SIOV all MemWr's are tagged with a pasid hence can never
trigger an interrupt. From this angle looks this check is unnecessary.




[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux