iommu/vt-d: Setup scalable mode context entry in probe path
authorLu Baolu <baolu.lu@linux.intel.com>
Tue, 5 Mar 2024 12:21:19 +0000 (20:21 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 6 Mar 2024 16:35:58 +0000 (17:35 +0100)
commit301f1a80487fd2f51012533792583d4425e8b8c0
tree25dd2c7a0fbdaf2d11603a7471a6a6adf97d1263
parent81e921fd321614c2ad8ac333b041aae1da7a1c6d
iommu/vt-d: Setup scalable mode context entry in probe path

In contrast to legacy mode, the DMA translation table is configured in
the PASID table entry instead of the context entry for scalable mode.
For this reason, it is more appropriate to set up the scalable mode
context entry in the device_probe callback and direct it to the
appropriate PASID table.

The iommu domain attach/detach operations only affect the PASID table
entry. Therefore, there is no need to modify the context entry when
configuring the translation type and page table.

The only exception is the kdump case, where context entry setup is
postponed until the device driver invokes the first DMA interface.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20240305013305.204605-4-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c
drivers/iommu/intel/pasid.c
drivers/iommu/intel/pasid.h