Commit fc8299f9 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'iommu-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull iommu fixes from Will Deacon:
 "Two straightforward vt-d fixes:

   - Fix boot when intel iommu initialisation fails under TXT (tboot)

   - Fix intel iommu compilation error when DMAR is enabled without ATS

  and temporarily update IOMMU MAINTAINERs entry"

* tag 'iommu-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  MAINTAINERS: Temporarily add myself to the IOMMU entry
  iommu/vt-d: Fix compile error with CONFIG_PCI_ATS not set
  iommu/vt-d: Avoid panic if iommu init fails in tboot system
parents 5de18678 91c2c28d
...@@ -9162,6 +9162,7 @@ F: include/linux/iomap.h ...@@ -9162,6 +9162,7 @@ F: include/linux/iomap.h
IOMMU DRIVERS IOMMU DRIVERS
M: Joerg Roedel <joro@8bytes.org> M: Joerg Roedel <joro@8bytes.org>
M: Will Deacon <will@kernel.org>
L: iommu@lists.linux-foundation.org L: iommu@lists.linux-foundation.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
......
...@@ -514,9 +514,6 @@ int tboot_force_iommu(void) ...@@ -514,9 +514,6 @@ int tboot_force_iommu(void)
if (!tboot_enabled()) if (!tboot_enabled())
return 0; return 0;
if (intel_iommu_tboot_noforce)
return 1;
if (no_iommu || swiotlb || dmar_disabled) if (no_iommu || swiotlb || dmar_disabled)
pr_warn("Forcing Intel-IOMMU to enabled\n"); pr_warn("Forcing Intel-IOMMU to enabled\n");
......
...@@ -335,7 +335,9 @@ static void dmar_pci_bus_del_dev(struct dmar_pci_notify_info *info) ...@@ -335,7 +335,9 @@ static void dmar_pci_bus_del_dev(struct dmar_pci_notify_info *info)
static inline void vf_inherit_msi_domain(struct pci_dev *pdev) static inline void vf_inherit_msi_domain(struct pci_dev *pdev)
{ {
dev_set_msi_domain(&pdev->dev, dev_get_msi_domain(&pdev->physfn->dev)); struct pci_dev *physfn = pci_physfn(pdev);
dev_set_msi_domain(&pdev->dev, dev_get_msi_domain(&physfn->dev));
} }
static int dmar_pci_bus_notifier(struct notifier_block *nb, static int dmar_pci_bus_notifier(struct notifier_block *nb,
......
...@@ -179,7 +179,7 @@ static int rwbf_quirk; ...@@ -179,7 +179,7 @@ static int rwbf_quirk;
* (used when kernel is launched w/ TXT) * (used when kernel is launched w/ TXT)
*/ */
static int force_on = 0; static int force_on = 0;
int intel_iommu_tboot_noforce; static int intel_iommu_tboot_noforce;
static int no_platform_optin; static int no_platform_optin;
#define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry)) #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry))
...@@ -4884,7 +4884,8 @@ int __init intel_iommu_init(void) ...@@ -4884,7 +4884,8 @@ int __init intel_iommu_init(void)
* Intel IOMMU is required for a TXT/tboot launch or platform * Intel IOMMU is required for a TXT/tboot launch or platform
* opt in, so enforce that. * opt in, so enforce that.
*/ */
force_on = tboot_force_iommu() || platform_optin_force_iommu(); force_on = (!intel_iommu_tboot_noforce && tboot_force_iommu()) ||
platform_optin_force_iommu();
if (iommu_init_mempool()) { if (iommu_init_mempool()) {
if (force_on) if (force_on)
......
...@@ -798,7 +798,6 @@ extern int iommu_calculate_agaw(struct intel_iommu *iommu); ...@@ -798,7 +798,6 @@ extern int iommu_calculate_agaw(struct intel_iommu *iommu);
extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu); extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu);
extern int dmar_disabled; extern int dmar_disabled;
extern int intel_iommu_enabled; extern int intel_iommu_enabled;
extern int intel_iommu_tboot_noforce;
extern int intel_iommu_gfx_mapped; extern int intel_iommu_gfx_mapped;
#else #else
static inline int iommu_calculate_agaw(struct intel_iommu *iommu) static inline int iommu_calculate_agaw(struct intel_iommu *iommu)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment