RE: [PATCH 1/2] iommu: Consolidate pasid dma ownership check

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

 



> From: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
> Sent: Tuesday, August 1, 2023 2:31 PM
>
> When switching device DMA ownership, it is required that all the device's
> pasid DMA be disabled. This is done by checking if the pasid array of the
> group is empty. Consolidate all the open code into a single helper. No
> intentional functionality change.

...

>  /**
>   * iommu_device_use_default_domain() - Device driver wants to handle
> device
>   *                                     DMA through the kernel DMA API.
> @@ -3052,14 +3063,14 @@ int iommu_device_use_default_domain(struct
> device *dev)
> 
>  	mutex_lock(&group->mutex);
>  	if (group->owner_cnt) {
> -		if (group->owner || !iommu_is_default_domain(group) ||
> -		    !xa_empty(&group->pasid_array)) {
> +		if (group->owner || !iommu_is_default_domain(group)) {
>  			ret = -EBUSY;
>  			goto unlock_out;
>  		}
>  	}
> 
>  	group->owner_cnt++;
> +	assert_pasid_dma_ownership(group);

Old code returns error if pasid_xrrary is not empty.

New code continues to take ownership with a warning.

this is a functional change. Is it intended or not?





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux