Public bug reported:

On systems with mixed PASID support within an iommu group (i.e. a
PASID-capable GPU sharing a group with PCIe bridges that lack PASID
capability), arm_smmu_update_ctx_desc_devices() iterates all masters
in the domain and calls arm_smmu_write_ctx_desc() for each one. For
non-PASID-capable devices with s1cdmax=0, any SSID >= 1 triggers a
WARN_ON(ssid >= (1 << cd_table->s1cdmax)) in arm_smmu_write_ctx_desc().

This occurs during GPU process teardown when the MMU notifier release
path (uvm_release -> mmput -> exit_mmap -> arm_smmu_mm_release) writes
a quiet context descriptor at the process's PASID to all devices in the
domain.

Skip the CD write for non-PASID-capable devices when the SSID is not
IOMMU_NO_PASID, since these devices were never programmed with that
SSID. SSID 0 (IOMMU_NO_PASID) writes are always allowed through, as
they are needed by the arm_smmu_share_asid() ASID reassignment path.

** Affects: linux-nvidia-6.8 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2144814

Title:
  linux-nvidia-6.8: Avoid arm_smmu_update_ctx_desc_devices() WARNINGs in
  IOMMU groups with mixed PASID Support

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-6.8/+bug/2144814/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to