Commit c74009f5 authored by Will Deacon's avatar Will Deacon
Browse files

Merge branch 'for-next/iommu/fixes' into for-next/iommu/core

Merge in IOMMU fixes for 5.10 in order to resolve conflicts against the
queue for 5.11.

* for-next/iommu/fixes:
  iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
  iommu/vt-d: Don't read VCCAP register unless it exists
  x86/tboot: Don't disable swiotlb when iommu is forced on
  iommu: Check return of __iommu_attach_device()
  arm-smmu-qcom: Ensure the qcom_scm driver has finished probing
  iommu/amd: Enforce 4k mapping for certain IOMMU data structures
  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
  iommu/vt-d: Cure VF irqdomain hickup
  x86/platform/uv: Fix copied UV5 output archtype
  x86/platform/uv: Drop last traces of uv_flush_tlb_others
parents 113eb4ce 4165bf01
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9171,6 +9171,7 @@ F: include/linux/iomap.h
IOMMU DRIVERS
M:	Joerg Roedel <joro@8bytes.org>
M:	Will Deacon <will@kernel.org>
L:	iommu@lists.linux-foundation.org
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
+0 −10
Original line number Diff line number Diff line
@@ -2,14 +2,8 @@
#ifndef _ASM_X86_UV_UV_H
#define _ASM_X86_UV_UV_H

#include <asm/tlbflush.h>

enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC};

struct cpumask;
struct mm_struct;
struct flush_tlb_info;

#ifdef CONFIG_X86_UV
#include <linux/efi.h>

@@ -44,10 +38,6 @@ static inline int is_uv_system(void) { return 0; }
static inline int is_uv_hubbed(int uv)	{ return 0; }
static inline void uv_cpu_init(void)	{ }
static inline void uv_system_init(void)	{ }
static inline const struct cpumask *
uv_flush_tlb_others(const struct cpumask *cpumask,
		    const struct flush_tlb_info *info)
{ return cpumask; }

#endif	/* X86_UV */

+3 −3
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ static union uvh_apicid uvh_apicid;
static int			uv_node_id;

/* Unpack AT/OEM/TABLE ID's to be NULL terminated strings */
static u8 uv_archtype[UV_AT_SIZE];
static u8 uv_archtype[UV_AT_SIZE + 1];
static u8 oem_id[ACPI_OEM_ID_SIZE + 1];
static u8 oem_table_id[ACPI_OEM_TABLE_ID_SIZE + 1];

@@ -320,7 +320,7 @@ static int __init decode_arch_type(unsigned long ptr)

	if (n > 0 && n < sizeof(uv_ate->archtype)) {
		pr_info("UV: UVarchtype received from BIOS\n");
		uv_stringify(UV_AT_SIZE, uv_archtype, uv_ate->archtype);
		uv_stringify(sizeof(uv_archtype), uv_archtype, uv_ate->archtype);
		return 1;
	}
	return 0;
@@ -378,7 +378,7 @@ static int __init uv_set_system_type(char *_oem_id, char *_oem_table_id)
	if (!early_get_arch_type())

		/* If not use OEM ID for UVarchtype */
		uv_stringify(UV_AT_SIZE, uv_archtype, _oem_id);
		uv_stringify(sizeof(uv_archtype), uv_archtype, oem_id);

	/* Check if not hubbed */
	if (strncmp(uv_archtype, "SGI", 3) != 0) {
+1 −7
Original line number Diff line number Diff line
@@ -514,16 +514,10 @@ int tboot_force_iommu(void)
	if (!tboot_enabled())
		return 0;

	if (intel_iommu_tboot_noforce)
		return 1;

	if (no_iommu || swiotlb || dmar_disabled)
	if (no_iommu || dmar_disabled)
		pr_warn("Forcing Intel-IOMMU to enabled\n");

	dmar_disabled = 0;
#ifdef CONFIG_SWIOTLB
	swiotlb = 0;
#endif
	no_iommu = 0;

	return 1;
+1 −1
Original line number Diff line number Diff line
@@ -257,7 +257,7 @@
#define DTE_IRQ_REMAP_INTCTL_MASK	(0x3ULL << 60)
#define DTE_IRQ_TABLE_LEN_MASK	(0xfULL << 1)
#define DTE_IRQ_REMAP_INTCTL    (2ULL << 60)
#define DTE_IRQ_TABLE_LEN       (8ULL << 1)
#define DTE_IRQ_TABLE_LEN       (9ULL << 1)
#define DTE_IRQ_REMAP_ENABLE    1ULL

#define PAGE_MODE_NONE    0x00
Loading