SOURCES: kernel-gcc4.patch (NEW) - _proxy_pda fix for x86-64 ( x86...
pluto
pluto at pld-linux.org
Wed Jan 31 00:14:24 CET 2007
Author: pluto Date: Tue Jan 30 23:14:24 2007 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- _proxy_pda fix for x86-64 ( x86-32 not finished/tested yet ).
---- Files affected:
SOURCES:
kernel-gcc4.patch (1.1 -> 1.2) (NEW)
---- Diffs:
================================================================
Index: SOURCES/kernel-gcc4.patch
diff -u /dev/null SOURCES/kernel-gcc4.patch:1.2
--- /dev/null Wed Jan 31 00:14:24 2007
+++ SOURCES/kernel-gcc4.patch Wed Jan 31 00:14:19 2007
@@ -0,0 +1,77 @@
+--- a/include/asm-x86_64/pda.h 2006-11-29 22:57:37.000000000 +0100
++++ b/include/asm-x86_64/pda.h 2007-01-24 00:42:01.207003500 +0100
+@@ -55,22 +55,22 @@
+ if (0) { T__ tmp__; tmp__ = (val); } /* type checking */ \
+ switch (sizeof(_proxy_pda.field)) { \
+ case 2: \
+- asm(op "w %1,%%gs:%c2" : \
+- "+m" (_proxy_pda.field) : \
++ asm volatile(op "w %0,%%gs:%c1" :: \
+ "ri" ((T__)val), \
+- "i"(pda_offset(field))); \
++ "i"(pda_offset(field)) : \
++ "memory");\
+ break; \
+ case 4: \
+- asm(op "l %1,%%gs:%c2" : \
+- "+m" (_proxy_pda.field) : \
++ asm volatile(op "l %0,%%gs:%c1" :: \
+ "ri" ((T__)val), \
+- "i" (pda_offset(field))); \
++ "i" (pda_offset(field)): \
++ "memory");\
+ break; \
+ case 8: \
+- asm(op "q %1,%%gs:%c2": \
+- "+m" (_proxy_pda.field) : \
++ asm volatile(op "q %0,%%gs:%c1" :: \
+ "ri" ((T__)val), \
+- "i"(pda_offset(field))); \
++ "i"(pda_offset(field)): \
++ "memory");\
+ break; \
+ default: \
+ __bad_pda_field(); \
+@@ -81,22 +81,22 @@
+ typeof(_proxy_pda.field) ret__; \
+ switch (sizeof(_proxy_pda.field)) { \
+ case 2: \
+- asm(op "w %%gs:%c1,%0" : \
++ asm volatile(op "w %%gs:%c1,%0" : \
+ "=r" (ret__) : \
+- "i" (pda_offset(field)), \
+- "m" (_proxy_pda.field)); \
++ "i" (pda_offset(field)) : \
++ "memory");\
+ break; \
+ case 4: \
+- asm(op "l %%gs:%c1,%0": \
++ asm volatile(op "l %%gs:%c1,%0": \
+ "=r" (ret__): \
+- "i" (pda_offset(field)), \
+- "m" (_proxy_pda.field)); \
++ "i" (pda_offset(field)) : \
++ "memory");\
+ break; \
+ case 8: \
+- asm(op "q %%gs:%c1,%0": \
++ asm volatile(op "q %%gs:%c1,%0": \
+ "=r" (ret__) : \
+- "i" (pda_offset(field)), \
+- "m" (_proxy_pda.field)); \
++ "i" (pda_offset(field)) : \
++ "memory");\
+ break; \
+ default: \
+ __bad_pda_field(); \
+@@ -112,8 +112,8 @@
+ /* This is not atomic against other CPUs -- CPU preemption needs to be off */
+ #define test_and_clear_bit_pda(bit,field) ({ \
+ int old__; \
+- asm volatile("btr %2,%%gs:%c3\n\tsbbl %0,%0" \
+- : "=r" (old__), "+m" (_proxy_pda.field) \
++ asm volatile("btr %1,%%gs:%c2\n\tsbbl %0,%0" \
++ : "=r" (old__) \
+ : "dIr" (bit), "i" (pda_offset(field)) : "memory"); \
+ old__; \
+ })
================================================================
More information about the pld-cvs-commit
mailing list