Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.infradead.org/iommu-2.6

* git://git.infradead.org/iommu-2.6:
intel-iommu: Fix 32-bit build warning with __cmpxchg()
intr-remap: allow disabling source id checking

+28 -1
+7
Documentation/kernel-parameters.txt
··· 981 981 result in a hardware IOTLB flush operation as opposed 982 982 to batching them for performance. 983 983 984 + intremap= [X86-64, Intel-IOMMU] 985 + Format: { on (default) | off | nosid } 986 + on enable Interrupt Remapping (default) 987 + off disable Interrupt Remapping 988 + nosid disable Source ID checking 989 + 984 990 inttest= [IA64] 985 991 986 992 iomem= Disable strict checking of access to MMIO memory ··· 1687 1681 1688 1682 nointremap [X86-64, Intel-IOMMU] Do not enable interrupt 1689 1683 remapping. 1684 + [Deprecated - use intremap=off] 1690 1685 1691 1686 nointroute [IA-64] 1692 1687
+1 -1
drivers/pci/intel-iommu.c
··· 236 236 return pte->val & VTD_PAGE_MASK; 237 237 #else 238 238 /* Must have a full atomic 64-bit read */ 239 - return __cmpxchg64(pte, 0ULL, 0ULL) & VTD_PAGE_MASK; 239 + return __cmpxchg64(&pte->val, 0ULL, 0ULL) & VTD_PAGE_MASK; 240 240 #endif 241 241 } 242 242
+20
drivers/pci/intr_remapping.c
··· 21 21 int intr_remapping_enabled; 22 22 23 23 static int disable_intremap; 24 + static int disable_sourceid_checking; 25 + 24 26 static __init int setup_nointremap(char *str) 25 27 { 26 28 disable_intremap = 1; 27 29 return 0; 28 30 } 29 31 early_param("nointremap", setup_nointremap); 32 + 33 + static __init int setup_intremap(char *str) 34 + { 35 + if (!str) 36 + return -EINVAL; 37 + 38 + if (!strncmp(str, "on", 2)) 39 + disable_intremap = 0; 40 + else if (!strncmp(str, "off", 3)) 41 + disable_intremap = 1; 42 + else if (!strncmp(str, "nosid", 5)) 43 + disable_sourceid_checking = 1; 44 + 45 + return 0; 46 + } 47 + early_param("intremap", setup_intremap); 30 48 31 49 struct irq_2_iommu { 32 50 struct intel_iommu *iommu; ··· 471 453 static void set_irte_sid(struct irte *irte, unsigned int svt, 472 454 unsigned int sq, unsigned int sid) 473 455 { 456 + if (disable_sourceid_checking) 457 + svt = SVT_NO_VERIFY; 474 458 irte->svt = svt; 475 459 irte->sq = sq; 476 460 irte->sid = sid;