aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-10-18 12:59:04 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-18 12:59:04 -0400
commit08328814256d888634ff15ba8fb67e2ae4340b64 (patch)
treef8fd156c069214ea57547505294241a08ca957f7
parent9d71bdfbcba12b55ed671166896cd785dcd57216 (diff)
parent0e60439c22ec551e9b5780eba73ddfeb63ab63d9 (diff)
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "Misc fixes, plus hw-enablement changes: - fix persistent RAM handling - remove pkeys warning - remove duplicate macro - fix debug warning in irq handler - add new 'Knights Mill' CPU related constants and enable the perf bits" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/intel/uncore: Add Knights Mill CPUID perf/x86/intel/rapl: Add Knights Mill CPUID perf/x86/intel: Add Knights Mill CPUID x86/cpu/intel: Add Knights Mill to Intel family x86/e820: Don't merge consecutive E820_PRAM ranges pkeys: Remove easily triggered WARN x86: Remove duplicate rtit status MSR macro x86/smp: Add irq_enter/exit() in smp_reschedule_interrupt()
-rw-r--r--arch/x86/events/intel/core.c3
-rw-r--r--arch/x86/events/intel/rapl.c1
-rw-r--r--arch/x86/events/intel/uncore.c1
-rw-r--r--arch/x86/include/asm/intel-family.h1
-rw-r--r--arch/x86/include/asm/msr-index.h1
-rw-r--r--arch/x86/kernel/e820.c2
-rw-r--r--arch/x86/kernel/smp.c2
7 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index a3a9eb84b5cf..eab0915f5995 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -3898,6 +3898,7 @@ __init int intel_pmu_init(void)
3898 break; 3898 break;
3899 3899
3900 case INTEL_FAM6_XEON_PHI_KNL: 3900 case INTEL_FAM6_XEON_PHI_KNL:
3901 case INTEL_FAM6_XEON_PHI_KNM:
3901 memcpy(hw_cache_event_ids, 3902 memcpy(hw_cache_event_ids,
3902 slm_hw_cache_event_ids, sizeof(hw_cache_event_ids)); 3903 slm_hw_cache_event_ids, sizeof(hw_cache_event_ids));
3903 memcpy(hw_cache_extra_regs, 3904 memcpy(hw_cache_extra_regs,
@@ -3912,7 +3913,7 @@ __init int intel_pmu_init(void)
3912 x86_pmu.flags |= PMU_FL_HAS_RSP_1; 3913 x86_pmu.flags |= PMU_FL_HAS_RSP_1;
3913 x86_pmu.flags |= PMU_FL_NO_HT_SHARING; 3914 x86_pmu.flags |= PMU_FL_NO_HT_SHARING;
3914 3915
3915 pr_cont("Knights Landing events, "); 3916 pr_cont("Knights Landing/Mill events, ");
3916 break; 3917 break;
3917 3918
3918 case INTEL_FAM6_SKYLAKE_MOBILE: 3919 case INTEL_FAM6_SKYLAKE_MOBILE:
diff --git a/arch/x86/events/intel/rapl.c b/arch/x86/events/intel/rapl.c
index b0f0e835a770..0a535cea8ff3 100644
--- a/arch/x86/events/intel/rapl.c
+++ b/arch/x86/events/intel/rapl.c
@@ -763,6 +763,7 @@ static const struct x86_cpu_id rapl_cpu_match[] __initconst = {
763 X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_XEON_D, hsw_rapl_init), 763 X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_XEON_D, hsw_rapl_init),
764 764
765 X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL, knl_rapl_init), 765 X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL, knl_rapl_init),
766 X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNM, knl_rapl_init),
766 767
767 X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_MOBILE, skl_rapl_init), 768 X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_MOBILE, skl_rapl_init),
768 X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP, skl_rapl_init), 769 X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP, skl_rapl_init),
diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
index d9844cc74486..efca2685d876 100644
--- a/arch/x86/events/intel/uncore.c
+++ b/arch/x86/events/intel/uncore.c
@@ -1349,6 +1349,7 @@ static const struct x86_cpu_id intel_uncore_match[] __initconst = {
1349 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_X, bdx_uncore_init), 1349 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_X, bdx_uncore_init),
1350 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_XEON_D, bdx_uncore_init), 1350 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_XEON_D, bdx_uncore_init),
1351 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL, knl_uncore_init), 1351 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL, knl_uncore_init),
1352 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNM, knl_uncore_init),
1352 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP,skl_uncore_init), 1353 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_DESKTOP,skl_uncore_init),
1353 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_MOBILE, skl_uncore_init), 1354 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_MOBILE, skl_uncore_init),
1354 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X, skx_uncore_init), 1355 X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X, skx_uncore_init),
diff --git a/arch/x86/include/asm/intel-family.h b/arch/x86/include/asm/intel-family.h
index 9ae5ab80a497..34a46dc076d3 100644
--- a/arch/x86/include/asm/intel-family.h
+++ b/arch/x86/include/asm/intel-family.h
@@ -64,5 +64,6 @@
64/* Xeon Phi */ 64/* Xeon Phi */
65 65
66#define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */ 66#define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */
67#define INTEL_FAM6_XEON_PHI_KNM 0x85 /* Knights Mill */
67 68
68#endif /* _ASM_X86_INTEL_FAMILY_H */ 69#endif /* _ASM_X86_INTEL_FAMILY_H */
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 56f4c6676b29..78f3760ca1f2 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -88,7 +88,6 @@
88 88
89#define MSR_IA32_RTIT_CTL 0x00000570 89#define MSR_IA32_RTIT_CTL 0x00000570
90#define MSR_IA32_RTIT_STATUS 0x00000571 90#define MSR_IA32_RTIT_STATUS 0x00000571
91#define MSR_IA32_RTIT_STATUS 0x00000571
92#define MSR_IA32_RTIT_ADDR0_A 0x00000580 91#define MSR_IA32_RTIT_ADDR0_A 0x00000580
93#define MSR_IA32_RTIT_ADDR0_B 0x00000581 92#define MSR_IA32_RTIT_ADDR0_B 0x00000581
94#define MSR_IA32_RTIT_ADDR1_A 0x00000582 93#define MSR_IA32_RTIT_ADDR1_A 0x00000582
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index b85fe5f91c3f..90e8dde3ec26 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -350,7 +350,7 @@ int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map,
350 * continue building up new bios map based on this 350 * continue building up new bios map based on this
351 * information 351 * information
352 */ 352 */
353 if (current_type != last_type) { 353 if (current_type != last_type || current_type == E820_PRAM) {
354 if (last_type != 0) { 354 if (last_type != 0) {
355 new_bios[new_bios_entry].size = 355 new_bios[new_bios_entry].size =
356 change_point[chgidx]->addr - last_addr; 356 change_point[chgidx]->addr - last_addr;
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index 68f8cc222f25..c00cb64bc0a1 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -261,8 +261,10 @@ static inline void __smp_reschedule_interrupt(void)
261 261
262__visible void smp_reschedule_interrupt(struct pt_regs *regs) 262__visible void smp_reschedule_interrupt(struct pt_regs *regs)
263{ 263{
264 irq_enter();
264 ack_APIC_irq(); 265 ack_APIC_irq();
265 __smp_reschedule_interrupt(); 266 __smp_reschedule_interrupt();
267 irq_exit();
266 /* 268 /*
267 * KVM uses this interrupt to force a cpu out of guest mode 269 * KVM uses this interrupt to force a cpu out of guest mode
268 */ 270 */