--- /dev/null
+From mingo@elte.hu Tue Jul 1 08:05:01 2008
+From: Max Asbock <masbock@us.ibm.com>
+Date: Mon, 30 Jun 2008 18:17:09 +0200
+Subject: x86: shift bits the right way in native_read_tscp
+To: stable@kernel.org
+Message-ID: <20080630161709.GA17710@elte.hu>
+Content-Disposition: inline
+
+From: Max Asbock <masbock@us.ibm.com>
+
+Commit 41aefdcc98fdba47459eab67630293d67e855fc3 upstream
+
+x86: shift bits the right way in native_read_tscp
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-x86/msr.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/asm-x86/msr.h
++++ b/include/asm-x86/msr.h
+@@ -18,7 +18,7 @@ static inline unsigned long long native_
+ 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);
+ }
+
+ /*