Skip to contentSkip to conversation

iommu/vtd: Cleanup dma_remapping.h header

PATCH Applied Lu Baolu 3 participants 5 messages Nov 12, 2018

Subsystems (7)
DRM drivers x86 DRM misc Intel i915 +3 more subsystems
lore
Share & tools
lore

Lu Baolu

author
#0 lore raw

PATCH v2 1/1 iommu/vtd: Cleanup dma_remapping.h header

Commit e61d98d8dad00 ("x64, x2apic/intr-remap: Intel vt-d, IOMMU code reorganization") moved dma_remapping.h from drivers/pci/ to current place. It is entirely VT-d specific, but uses a generic name. This merges dma_remapping.h with include/linux/intel-iommu.h and removes dma_remapping.h as the result.

---
 arch/x86/kernel/tboot.c                    |  2 +-
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |  2 +-
 drivers/gpu/drm/i915/intel_display.c       |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c        |  2 +-
 drivers/misc/mic/scif/scif_rma.c           |  2 +-
 drivers/misc/mic/scif/scif_rma.h           |  2 +-
 include/linux/dma_remapping.h              | 58 ----------------------
 include/linux/intel-iommu.h                | 49 +++++++++++++++++-
 8 files changed, 53 insertions(+), 66 deletions(-)
 delete mode 100644 include/linux/dma_remapping.h
arch/x86/kernel/tboot.c +1 -1
index a2486f444073..6e5ef8fb8a02 100644
@@ -19,7 +19,7 @@
  *
  */
 
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 #include <linux/init_task.h>
 #include <linux/spinlock.h>
 #include <linux/export.h>
drivers/gpu/drm/i915/i915_gem_execbuffer.c +1 -1
index 09187286d346..d8ccc77fdbaf 100644
@@ -26,7 +26,7 @@
  *
  */
 
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 #include <linux/reservation.h>
 #include <linux/sync_file.h>
 #include <linux/uaccess.h>
drivers/gpu/drm/i915/intel_display.c +1 -1
index 9741cc419e1b..45334a84fab1 100644
@@ -47,7 +47,7 @@
 #include <drm/drm_plane_helper.h>
 #include <drm/drm_rect.h>
 #include <drm/drm_atomic_uapi.h>
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 #include <linux/reservation.h>
 
 /* Primary plane formats for gen <= 3 */
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +1 -1
index 61a84b958d67..c3e80a3b09fc 100644
@@ -34,7 +34,7 @@
 #include <drm/ttm/ttm_placement.h>
 #include <drm/ttm/ttm_bo_driver.h>
 #include <drm/ttm/ttm_module.h>
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 
 #define VMWGFX_DRIVER_DESC "Linux drm driver for VMware graphics devices"
 #define VMWGFX_CHIP_SVGAII 0
drivers/misc/mic/scif/scif_rma.c +1 -1
index c824329f7012..b441f6b0c743 100644
@@ -15,7 +15,7 @@
  * Intel SCIF driver.
  *
  */
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 #include <linux/pagemap.h>
 #include <linux/sched/mm.h>
 #include <linux/sched/signal.h>
drivers/misc/mic/scif/scif_rma.h +1 -1
index fa6722279196..d90a06d4e93b 100644
@@ -53,7 +53,7 @@
 #ifndef SCIF_RMA_H
 #define SCIF_RMA_H
 
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 #include <linux/mmu_notifier.h>
 
 #include "../bus/scif_bus.h"
include/linux/dma_remapping.h deleted +0 -58

58 lines not on this page · raw message

include/linux/intel-iommu.h +47 -2

67 lines not on this page · raw message

Signature · 1 line
2.17.1
author
#1 lore raw

Hi,

Quoted 6 lines · Lu Baolu

Commit e61d98d8dad00 ("x64, x2apic/intr-remap: Intel vt-d, IOMMU code reorganization") moved dma_remapping.h from drivers/pci/ to current place. It is entirely VT-d specific, but uses a generic name. This merges dma_remapping.h with include/linux/intel-iommu.h and removes dma_remapping.h as the result.

Quoted 7 lines

---

Just realized that I forgot to add the change log.

Change log:
v1->v2:
- Add "Reviewed-by: Christoph Hellwig <[email protected]>"

Sorry about it.

Best regards,
Lu Baolu

Quoted 228 lines
  arch/x86/kernel/tboot.c                    |  2 +-
  drivers/gpu/drm/i915/i915_gem_execbuffer.c |  2 +-
  drivers/gpu/drm/i915/intel_display.c       |  2 +-
  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c        |  2 +-
  drivers/misc/mic/scif/scif_rma.c           |  2 +-
  drivers/misc/mic/scif/scif_rma.h           |  2 +-
  include/linux/dma_remapping.h              | 58 ----------------------
  include/linux/intel-iommu.h                | 49 +++++++++++++++++-
  8 files changed, 53 insertions(+), 66 deletions(-)

delete mode 100644 include/linux/dma_remapping.h

arch/x86/kernel/tboot.c +1 -1
index a2486f444073..6e5ef8fb8a02 100644
@@ -19,7 +19,7 @@
   *
   */
 
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
  #include <linux/init_task.h>
  #include <linux/spinlock.h>
  #include <linux/export.h>
drivers/gpu/drm/i915/i915_gem_execbuffer.c +1 -1
index 09187286d346..d8ccc77fdbaf 100644
@@ -26,7 +26,7 @@
   *
   */
 
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
  #include <linux/reservation.h>
  #include <linux/sync_file.h>
  #include <linux/uaccess.h>
drivers/gpu/drm/i915/intel_display.c +1 -1
index 9741cc419e1b..45334a84fab1 100644
@@ -47,7 +47,7 @@
  #include <drm/drm_plane_helper.h>
  #include <drm/drm_rect.h>
  #include <drm/drm_atomic_uapi.h>
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
  #include <linux/reservation.h>
 
  /* Primary plane formats for gen <= 3 */
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +1 -1
index 61a84b958d67..c3e80a3b09fc 100644
@@ -34,7 +34,7 @@
  #include <drm/ttm/ttm_placement.h>
  #include <drm/ttm/ttm_bo_driver.h>
  #include <drm/ttm/ttm_module.h>
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
 
  #define VMWGFX_DRIVER_DESC "Linux drm driver for VMware graphics devices"
  #define VMWGFX_CHIP_SVGAII 0
drivers/misc/mic/scif/scif_rma.c +1 -1
index c824329f7012..b441f6b0c743 100644
@@ -15,7 +15,7 @@
   * Intel SCIF driver.
   *
   */
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
  #include <linux/pagemap.h>
  #include <linux/sched/mm.h>
  #include <linux/sched/signal.h>
drivers/misc/mic/scif/scif_rma.h +1 -1
index fa6722279196..d90a06d4e93b 100644
@@ -53,7 +53,7 @@
  #ifndef SCIF_RMA_H
  #define SCIF_RMA_H
 
-#include <linux/dma_remapping.h>
+#include <linux/intel-iommu.h>
  #include <linux/mmu_notifier.h>
 
  #include "../bus/scif_bus.h"
include/linux/dma_remapping.h deleted +0 -58
deleted file mode 100644
index 21b3e7d33d68..000000000000
@@ -1,58 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _DMA_REMAPPING_H
-#define _DMA_REMAPPING_H
-
-/*
- * VT-d hardware uses 4KiB page size regardless of host page size.
- */
-#define VTD_PAGE_SHIFT		(12)
-#define VTD_PAGE_SIZE		(1UL << VTD_PAGE_SHIFT)
-#define VTD_PAGE_MASK		(((u64)-1) << VTD_PAGE_SHIFT)
-#define VTD_PAGE_ALIGN(addr)	(((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK)
-
-#define VTD_STRIDE_SHIFT        (9)
-#define VTD_STRIDE_MASK         (((u64)-1) << VTD_STRIDE_SHIFT)
-
-#define DMA_PTE_READ (1)
-#define DMA_PTE_WRITE (2)
-#define DMA_PTE_LARGE_PAGE (1 << 7)
-#define DMA_PTE_SNP (1 << 11)
-
-#define CONTEXT_TT_MULTI_LEVEL	0
-#define CONTEXT_TT_DEV_IOTLB	1
-#define CONTEXT_TT_PASS_THROUGH 2
-/* Extended context entry types */
-#define CONTEXT_TT_PT_PASID	4
-#define CONTEXT_TT_PT_PASID_DEV_IOTLB 5
-#define CONTEXT_TT_MASK (7ULL << 2)
-
-#define CONTEXT_DINVE		(1ULL << 8)
-#define CONTEXT_PRS		(1ULL << 9)
-#define CONTEXT_PASIDE		(1ULL << 11)
-
-struct intel_iommu;
-struct dmar_domain;
-struct root_entry;
-
-
-#ifdef CONFIG_INTEL_IOMMU
-extern int iommu_calculate_agaw(struct intel_iommu *iommu);
-extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu);
-extern int dmar_disabled;
-extern int intel_iommu_enabled;
-extern int intel_iommu_tboot_noforce;
-#else
-static inline int iommu_calculate_agaw(struct intel_iommu *iommu)
-{
-	return 0;
-}
-static inline int iommu_calculate_max_sagaw(struct intel_iommu *iommu)
-{
-	return 0;
-}
-#define dmar_disabled	(1)
-#define intel_iommu_enabled (0)
-#endif
-
-
-#endif
include/linux/intel-iommu.h +47 -2
index b0ae25837361..a58bc05d6798 100644
@@ -26,7 +26,6 @@
  #include <linux/iova.h>
  #include <linux/io.h>
  #include <linux/idr.h>
-#include <linux/dma_remapping.h>
  #include <linux/mmu_notifier.h>
  #include <linux/list.h>
  #include <linux/iommu.h>
@@ -37,9 +36,36 @@
  #include <asm/iommu.h>
 
  /*
- * Intel IOMMU register specification per version 1.0 public spec.
+ * VT-d hardware uses 4KiB page size regardless of host page size.
   */
+#define VTD_PAGE_SHIFT		(12)
+#define VTD_PAGE_SIZE		(1UL << VTD_PAGE_SHIFT)
+#define VTD_PAGE_MASK		(((u64)-1) << VTD_PAGE_SHIFT)
+#define VTD_PAGE_ALIGN(addr)	(((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK)
+
+#define VTD_STRIDE_SHIFT        (9)
+#define VTD_STRIDE_MASK         (((u64)-1) << VTD_STRIDE_SHIFT)
+
+#define DMA_PTE_READ (1)
+#define DMA_PTE_WRITE (2)
+#define DMA_PTE_LARGE_PAGE (1 << 7)
+#define DMA_PTE_SNP (1 << 11)
+
+#define CONTEXT_TT_MULTI_LEVEL	0
+#define CONTEXT_TT_DEV_IOTLB	1
+#define CONTEXT_TT_PASS_THROUGH 2
+/* Extended context entry types */
+#define CONTEXT_TT_PT_PASID	4
+#define CONTEXT_TT_PT_PASID_DEV_IOTLB 5
+#define CONTEXT_TT_MASK (7ULL << 2)
+
+#define CONTEXT_DINVE		(1ULL << 8)
+#define CONTEXT_PRS		(1ULL << 9)
+#define CONTEXT_PASIDE		(1ULL << 11)
 
+/*
+ * Intel IOMMU register specification per version 1.0 public spec.
+ */
  #define	DMAR_VER_REG	0x0	/* Arch version supported by this IOMMU */
  #define	DMAR_CAP_REG	0x8	/* Hardware supported capabilities */
  #define	DMAR_ECAP_REG	0x10	/* Extended capabilities supported */
@@ -632,4 +658,23 @@ bool context_present(struct context_entry *context);
  struct context_entry *iommu_context_addr(struct intel_iommu *iommu, u8 bus,
  					 u8 devfn, int alloc);
 
+#ifdef CONFIG_INTEL_IOMMU
+extern int iommu_calculate_agaw(struct intel_iommu *iommu);
+extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu);
+extern int dmar_disabled;
+extern int intel_iommu_enabled;
+extern int intel_iommu_tboot_noforce;
+#else
+static inline int iommu_calculate_agaw(struct intel_iommu *iommu)
+{
+	return 0;
+}
+static inline int iommu_calculate_max_sagaw(struct intel_iommu *iommu)
+{
+	return 0;
+}
+#define dmar_disabled	(1)
+#define intel_iommu_enabled (0)
+#endif
+
  #endif
Reviewed-by on v2 1/1
#2 lore raw
In reply to Lu Baolu
Quoted 10 lines

[email protected]] On Behalf Of Lu Baolu
Sent: Monday, November 12, 2018 2:40 PM
Subject: [PATCH v2 1/1] iommu/vtd: Cleanup dma_remapping.h header

Commit e61d98d8dad00 ("x64, x2apic/intr-remap: Intel vt-d, IOMMU code reorganization") moved dma_remapping.h from drivers/pci/ to current place. It is entirely VT-d specific, but uses a generic name. This merges dma_remapping.h with include/linux/intel-iommu.h and removes dma_remapping.h as the result.

Quoted 7 lines

---

Just out of curious, did you considered to modify the original file name to be an intel specific file name? What makes you believe merging the file content to intel-iommu.h is better?

Regards,
Yi Liu

author
#3 lore raw

Hi,

Quoted 18 lines · Yi L
Quoted 10 lines

[email protected]] On Behalf Of Lu Baolu
Sent: Monday, November 12, 2018 2:40 PM
Subject: [PATCH v2 1/1] iommu/vtd: Cleanup dma_remapping.h header

Commit e61d98d8dad00 ("x64, x2apic/intr-remap: Intel vt-d, IOMMU code reorganization") moved dma_remapping.h from drivers/pci/ to current place. It is entirely VT-d specific, but uses a generic name. This merges dma_remapping.h with include/linux/intel-iommu.h and removes dma_remapping.h as the result.

Quoted 7 lines

---

Quoted 5 lines

Just out of curious, did you considered to modify the original file name to be an intel specific file name? What makes you believe merging the file content to intel-iommu.h is better?

I don't think we need multiple headers for VT-d specific things.

Best regards,
Lu Baolu

Applied
#4 lore raw
In reply to Lu Baolu
Quoted 10 lines · Lu Baolu
 arch/x86/kernel/tboot.c                    |  2 +-
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |  2 +-
 drivers/gpu/drm/i915/intel_display.c       |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c        |  2 +-
 drivers/misc/mic/scif/scif_rma.c           |  2 +-
 drivers/misc/mic/scif/scif_rma.h           |  2 +-
 include/linux/dma_remapping.h              | 58 ----------------------
 include/linux/intel-iommu.h                | 49 +++++++++++++++++-
 8 files changed, 53 insertions(+), 66 deletions(-)
 delete mode 100644 include/linux/dma_remapping.h

Applied, thanks.