mbox series

[RESEND,v10,0/4] iommu: Shared Virtual Addressing for SMMUv3 (PT sharing part)

Message ID 20201106155048.997886-1-jean-philippe@linaro.org (mailing list archive)
Headers show
Series iommu: Shared Virtual Addressing for SMMUv3 (PT sharing part) | expand

Message

Jean-Philippe Brucker Nov. 6, 2020, 3:50 p.m. UTC
These are the remaining bits implementing iommu_sva_bind_device() for
SMMUv3. They didn't make it into v5.10 because an Ack was missing for
adding the PASID field to mm_struct. That is now upstream, in commit
52ad9bc64c74 ("mm: Add a pasid member to struct mm_struct"). No change
since last posting [1], only rebased onto v5.10-rc2.

Note that full SVA support for SMMUv3 still needs IOPF and DVM support,
coming soon.

[1] https://lore.kernel.org/linux-iommu/20200918101852.582559-1-jean-philippe@linaro.org/

Jean-Philippe Brucker (4):
  iommu/ioasid: Add ioasid references
  iommu/sva: Add PASID helpers
  iommu/arm-smmu-v3: Implement iommu_sva_bind/unbind()
  iommu/arm-smmu-v3: Hook up ATC invalidation to mm ops

 drivers/iommu/Kconfig                         |   7 +
 drivers/iommu/Makefile                        |   1 +
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h   |  30 +++
 drivers/iommu/iommu-sva-lib.h                 |  15 ++
 include/linux/ioasid.h                        |  10 +-
 .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c   | 244 +++++++++++++++++-
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c   |  50 +++-
 drivers/iommu/intel/iommu.c                   |   4 +-
 drivers/iommu/intel/svm.c                     |   6 +-
 drivers/iommu/ioasid.c                        |  38 ++-
 drivers/iommu/iommu-sva-lib.c                 |  86 ++++++
 11 files changed, 468 insertions(+), 23 deletions(-)
 create mode 100644 drivers/iommu/iommu-sva-lib.h
 create mode 100644 drivers/iommu/iommu-sva-lib.c

Comments

Will Deacon Nov. 23, 2020, 3:46 p.m. UTC | #1
On Fri, 6 Nov 2020 16:50:46 +0100, Jean-Philippe Brucker wrote:
> These are the remaining bits implementing iommu_sva_bind_device() for
> SMMUv3. They didn't make it into v5.10 because an Ack was missing for
> adding the PASID field to mm_struct. That is now upstream, in commit
> 52ad9bc64c74 ("mm: Add a pasid member to struct mm_struct"). No change
> since last posting [1], only rebased onto v5.10-rc2.
> 
> Note that full SVA support for SMMUv3 still needs IOPF and DVM support,
> coming soon.
> 
> [...]

Applied to arm64 (for-next/iommu/svm), thanks!

[1/4] iommu/ioasid: Add ioasid references
      https://git.kernel.org/arm64/c/cb4789b0d19f
[2/4] iommu/sva: Add PASID helpers
      https://git.kernel.org/arm64/c/cfc78dfd9b36
[3/4] iommu/arm-smmu-v3: Implement iommu_sva_bind/unbind()
      https://git.kernel.org/arm64/c/32784a9562fb
[4/4] iommu/arm-smmu-v3: Hook up ATC invalidation to mm ops
      https://git.kernel.org/arm64/c/2f7e8c553e98

Cheers,