]> Pileus Git - ~andy/linux/commitdiff
Merge branches 'x86-cpu-for-linus', 'x86-boot-for-linus', 'x86-cpufeature-for-linus...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 22 Mar 2012 16:28:15 +0000 (09:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 22 Mar 2012 16:28:15 +0000 (09:28 -0700)
Pull trivial x86 branches from Ingo Molnar: small one-liners to fix up
details.

* 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86: Remove some noise from boot log when starting cpus

* 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86, boot: Fix port argument to inl() function

* 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86, cpufeature: Add CPU features from Intel document 319433-012A

* 'x86-process-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86_64: Record stack pointer before task execution begins

* 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/UV: Lower UV rtc clocksource rating

arch/x86/boot/boot.h
arch/x86/include/asm/cpufeature.h
arch/x86/kernel/process_64.c
arch/x86/kernel/smpboot.c
arch/x86/platform/uv/uv_time.c

index c7093bd9f2d34f834267ccace3557e8f399f154f..18997e5a1053128369bb22029d762f9dde204874 100644 (file)
@@ -67,7 +67,7 @@ static inline void outl(u32 v, u16 port)
 {
        asm volatile("outl %0,%1" : : "a" (v), "dN" (port));
 }
-static inline u32 inl(u32 port)
+static inline u32 inl(u16 port)
 {
        u32 v;
        asm volatile("inl %1,%0" : "=a" (v) : "dN" (port));
index dcb839eebc7684bfd076055eaab0ef91eac08a02..340ee49961a61061862f892526d70a2f183b314c 100644 (file)
 /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
 #define X86_FEATURE_FSGSBASE   (9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
 #define X86_FEATURE_BMI1       (9*32+ 3) /* 1st group bit manipulation extensions */
+#define X86_FEATURE_HLE                (9*32+ 4) /* Hardware Lock Elision */
 #define X86_FEATURE_AVX2       (9*32+ 5) /* AVX2 instructions */
 #define X86_FEATURE_SMEP       (9*32+ 7) /* Supervisor Mode Execution Protection */
 #define X86_FEATURE_BMI2       (9*32+ 8) /* 2nd group bit manipulation extensions */
 #define X86_FEATURE_ERMS       (9*32+ 9) /* Enhanced REP MOVSB/STOSB */
+#define X86_FEATURE_INVPCID    (9*32+10) /* Invalidate Processor Context ID */
+#define X86_FEATURE_RTM                (9*32+11) /* Restricted Transactional Memory */
 
 #if defined(__KERNEL__) && !defined(__ASSEMBLY__)
 
index e34257c70c28fef1cb0864d8530d2ef8e1d42234..442e7bfe10ae5ef2879374498e57026011e5a98f 100644 (file)
@@ -340,6 +340,7 @@ start_thread_common(struct pt_regs *regs, unsigned long new_ip,
        loadsegment(es, _ds);
        loadsegment(ds, _ds);
        load_gs_index(0);
+       current->thread.usersp  = new_sp;
        regs->ip                = new_ip;
        regs->sp                = new_sp;
        percpu_write(old_rsp, new_sp);
index 58f78165d308a2b52537095e33ab18e81765e8e6..6d5f54fcd2336b4b7408140869e3113c6707a2ca 100644 (file)
@@ -727,8 +727,6 @@ do_rest:
         * the targeted processor.
         */
 
-       printk(KERN_DEBUG "smpboot cpu %d: start_ip = %lx\n", cpu, start_ip);
-
        atomic_set(&init_deasserted, 0);
 
        if (get_uv_system_type() != UV_NON_UNIQUE_APIC) {
index 9f29a01ee1b3fec6e8d13dce479d352d8a2eae0c..5032e0d19b8670b14cda20890a80dd0b91129b25 100644 (file)
@@ -37,7 +37,7 @@ static void uv_rtc_timer_setup(enum clock_event_mode,
 
 static struct clocksource clocksource_uv = {
        .name           = RTC_NAME,
-       .rating         = 400,
+       .rating         = 299,
        .read           = uv_read_rtc,
        .mask           = (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK,
        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
@@ -379,10 +379,6 @@ static __init int uv_rtc_setup_clock(void)
        if (!is_uv_system())
                return -ENODEV;
 
-       /* If single blade, prefer tsc */
-       if (uv_num_possible_blades() == 1)
-               clocksource_uv.rating = 250;
-
        rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second);
        if (rc)
                printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc);