x86: shift bits the right way in native_read_tscp
authorMax Asbock <masbock@us.ibm.com>
Wed, 25 Jun 2008 21:45:28 +0000 (14:45 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 26 Jun 2008 12:49:17 +0000 (14:49 +0200)
native_read_tscp shifts the bits in the high order value in the
wrong direction, the attached patch fixes that.

Signed-off-by: Max Asbock <masbock@linux.vnet.ibm.com>
Acked-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/asm-x86/msr.h

index 3707650..2b5f2c9 100644 (file)
@@ -18,7 +18,7 @@ static inline unsigned long long native_read_tscp(unsigned int *aux)
        unsigned long low, high;
        asm volatile(".byte 0x0f,0x01,0xf9"
                     : "=a" (low), "=d" (high), "=c" (*aux));
        unsigned long low, high;
        asm volatile(".byte 0x0f,0x01,0xf9"
                     : "=a" (low), "=d" (high), "=c" (*aux));
-       return low | ((u64)high >> 32);
+       return low | ((u64)high << 32);
 }
 
 /*
 }
 
 /*