···981981 result in a hardware IOTLB flush operation as opposed982982 to batching them for performance.983983984984+ intremap= [X86-64, Intel-IOMMU]985985+ Format: { on (default) | off | nosid }986986+ on enable Interrupt Remapping (default)987987+ off disable Interrupt Remapping988988+ nosid disable Source ID checking989989+984990 inttest= [IA64]985991986992 iomem= Disable strict checking of access to MMIO memory···1687168116881682 nointremap [X86-64, Intel-IOMMU] Do not enable interrupt16891683 remapping.16841684+ [Deprecated - use intremap=off]1690168516911686 nointroute [IA-64]16921687
+1-1
drivers/pci/intel-iommu.c
···236236 return pte->val & VTD_PAGE_MASK;237237#else238238 /* Must have a full atomic 64-bit read */239239- return __cmpxchg64(pte, 0ULL, 0ULL) & VTD_PAGE_MASK;239239+ return __cmpxchg64(&pte->val, 0ULL, 0ULL) & VTD_PAGE_MASK;240240#endif241241}242242
+20
drivers/pci/intr_remapping.c
···2121int intr_remapping_enabled;22222323static int disable_intremap;2424+static int disable_sourceid_checking;2525+2426static __init int setup_nointremap(char *str)2527{2628 disable_intremap = 1;2729 return 0;2830}2931early_param("nointremap", setup_nointremap);3232+3333+static __init int setup_intremap(char *str)3434+{3535+ if (!str)3636+ return -EINVAL;3737+3838+ if (!strncmp(str, "on", 2))3939+ disable_intremap = 0;4040+ else if (!strncmp(str, "off", 3))4141+ disable_intremap = 1;4242+ else if (!strncmp(str, "nosid", 5))4343+ disable_sourceid_checking = 1;4444+4545+ return 0;4646+}4747+early_param("intremap", setup_intremap);30483149struct irq_2_iommu {3250 struct intel_iommu *iommu;···471453static void set_irte_sid(struct irte *irte, unsigned int svt,472454 unsigned int sq, unsigned int sid)473455{456456+ if (disable_sourceid_checking)457457+ svt = SVT_NO_VERIFY;474458 irte->svt = svt;475459 irte->sq = sq;476460 irte->sid = sid;