diff options
-rw-r--r-- | arch/x86/boot/boot.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/cpufeature.h | 3 | ||||
-rw-r--r-- | arch/x86/kernel/process_64.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/x86/platform/uv/uv_time.c | 6 |
5 files changed, 6 insertions, 8 deletions
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h index c7093bd9f2d3..18997e5a1053 100644 --- a/arch/x86/boot/boot.h +++ b/arch/x86/boot/boot.h | |||
@@ -67,7 +67,7 @@ static inline void outl(u32 v, u16 port) | |||
67 | { | 67 | { |
68 | asm volatile("outl %0,%1" : : "a" (v), "dN" (port)); | 68 | asm volatile("outl %0,%1" : : "a" (v), "dN" (port)); |
69 | } | 69 | } |
70 | static inline u32 inl(u32 port) | 70 | static inline u32 inl(u16 port) |
71 | { | 71 | { |
72 | u32 v; | 72 | u32 v; |
73 | asm volatile("inl %1,%0" : "=a" (v) : "dN" (port)); | 73 | asm volatile("inl %1,%0" : "=a" (v) : "dN" (port)); |
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h index dcb839eebc76..340ee49961a6 100644 --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h | |||
@@ -200,10 +200,13 @@ | |||
200 | /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */ | 200 | /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */ |
201 | #define X86_FEATURE_FSGSBASE (9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/ | 201 | #define X86_FEATURE_FSGSBASE (9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/ |
202 | #define X86_FEATURE_BMI1 (9*32+ 3) /* 1st group bit manipulation extensions */ | 202 | #define X86_FEATURE_BMI1 (9*32+ 3) /* 1st group bit manipulation extensions */ |
203 | #define X86_FEATURE_HLE (9*32+ 4) /* Hardware Lock Elision */ | ||
203 | #define X86_FEATURE_AVX2 (9*32+ 5) /* AVX2 instructions */ | 204 | #define X86_FEATURE_AVX2 (9*32+ 5) /* AVX2 instructions */ |
204 | #define X86_FEATURE_SMEP (9*32+ 7) /* Supervisor Mode Execution Protection */ | 205 | #define X86_FEATURE_SMEP (9*32+ 7) /* Supervisor Mode Execution Protection */ |
205 | #define X86_FEATURE_BMI2 (9*32+ 8) /* 2nd group bit manipulation extensions */ | 206 | #define X86_FEATURE_BMI2 (9*32+ 8) /* 2nd group bit manipulation extensions */ |
206 | #define X86_FEATURE_ERMS (9*32+ 9) /* Enhanced REP MOVSB/STOSB */ | 207 | #define X86_FEATURE_ERMS (9*32+ 9) /* Enhanced REP MOVSB/STOSB */ |
208 | #define X86_FEATURE_INVPCID (9*32+10) /* Invalidate Processor Context ID */ | ||
209 | #define X86_FEATURE_RTM (9*32+11) /* Restricted Transactional Memory */ | ||
207 | 210 | ||
208 | #if defined(__KERNEL__) && !defined(__ASSEMBLY__) | 211 | #if defined(__KERNEL__) && !defined(__ASSEMBLY__) |
209 | 212 | ||
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index e34257c70c28..442e7bfe10ae 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -340,6 +340,7 @@ start_thread_common(struct pt_regs *regs, unsigned long new_ip, | |||
340 | loadsegment(es, _ds); | 340 | loadsegment(es, _ds); |
341 | loadsegment(ds, _ds); | 341 | loadsegment(ds, _ds); |
342 | load_gs_index(0); | 342 | load_gs_index(0); |
343 | current->thread.usersp = new_sp; | ||
343 | regs->ip = new_ip; | 344 | regs->ip = new_ip; |
344 | regs->sp = new_sp; | 345 | regs->sp = new_sp; |
345 | percpu_write(old_rsp, new_sp); | 346 | percpu_write(old_rsp, new_sp); |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 58f78165d308..6d5f54fcd233 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -727,8 +727,6 @@ do_rest: | |||
727 | * the targeted processor. | 727 | * the targeted processor. |
728 | */ | 728 | */ |
729 | 729 | ||
730 | printk(KERN_DEBUG "smpboot cpu %d: start_ip = %lx\n", cpu, start_ip); | ||
731 | |||
732 | atomic_set(&init_deasserted, 0); | 730 | atomic_set(&init_deasserted, 0); |
733 | 731 | ||
734 | if (get_uv_system_type() != UV_NON_UNIQUE_APIC) { | 732 | if (get_uv_system_type() != UV_NON_UNIQUE_APIC) { |
diff --git a/arch/x86/platform/uv/uv_time.c b/arch/x86/platform/uv/uv_time.c index 9f29a01ee1b3..5032e0d19b86 100644 --- a/arch/x86/platform/uv/uv_time.c +++ b/arch/x86/platform/uv/uv_time.c | |||
@@ -37,7 +37,7 @@ static void uv_rtc_timer_setup(enum clock_event_mode, | |||
37 | 37 | ||
38 | static struct clocksource clocksource_uv = { | 38 | static struct clocksource clocksource_uv = { |
39 | .name = RTC_NAME, | 39 | .name = RTC_NAME, |
40 | .rating = 400, | 40 | .rating = 299, |
41 | .read = uv_read_rtc, | 41 | .read = uv_read_rtc, |
42 | .mask = (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK, | 42 | .mask = (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK, |
43 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 43 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
@@ -379,10 +379,6 @@ static __init int uv_rtc_setup_clock(void) | |||
379 | if (!is_uv_system()) | 379 | if (!is_uv_system()) |
380 | return -ENODEV; | 380 | return -ENODEV; |
381 | 381 | ||
382 | /* If single blade, prefer tsc */ | ||
383 | if (uv_num_possible_blades() == 1) | ||
384 | clocksource_uv.rating = 250; | ||
385 | |||
386 | rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second); | 382 | rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second); |
387 | if (rc) | 383 | if (rc) |
388 | printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc); | 384 | printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc); |