diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-14 21:44:00 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-14 21:44:00 -0400 |
| commit | d471a4b9f2ac327c15300ba2b2bda2c6d6fd03bc (patch) | |
| tree | 96d38bbbfc6dc78eaa370eca0fad6472660ebd12 | |
| parent | 4e310fda91cb095915395f811d10b2c900c9589e (diff) | |
| parent | b560177f3e1c6b2d75b220d41ae72636243475c4 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
m68k: Fix asm constraints for atomic_sub_and_test() and atomic_add_negative()
m68k: Fix `struct sigcontext' for ColdFire
| -rw-r--r-- | arch/m68k/include/asm/atomic_mm.h | 8 | ||||
| -rw-r--r-- | arch/m68k/include/asm/sigcontext.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/arch/m68k/include/asm/atomic_mm.h b/arch/m68k/include/asm/atomic_mm.h index 88b7af20a996..d9d2ed647435 100644 --- a/arch/m68k/include/asm/atomic_mm.h +++ b/arch/m68k/include/asm/atomic_mm.h | |||
| @@ -148,14 +148,18 @@ static inline int atomic_xchg(atomic_t *v, int new) | |||
| 148 | static inline int atomic_sub_and_test(int i, atomic_t *v) | 148 | static inline int atomic_sub_and_test(int i, atomic_t *v) |
| 149 | { | 149 | { |
| 150 | char c; | 150 | char c; |
| 151 | __asm__ __volatile__("subl %2,%1; seq %0" : "=d" (c), "+m" (*v): "g" (i)); | 151 | __asm__ __volatile__("subl %2,%1; seq %0" |
| 152 | : "=d" (c), "+m" (*v) | ||
| 153 | : "id" (i)); | ||
| 152 | return c != 0; | 154 | return c != 0; |
| 153 | } | 155 | } |
| 154 | 156 | ||
| 155 | static inline int atomic_add_negative(int i, atomic_t *v) | 157 | static inline int atomic_add_negative(int i, atomic_t *v) |
| 156 | { | 158 | { |
| 157 | char c; | 159 | char c; |
| 158 | __asm__ __volatile__("addl %2,%1; smi %0" : "=d" (c), "+m" (*v): "g" (i)); | 160 | __asm__ __volatile__("addl %2,%1; smi %0" |
| 161 | : "=d" (c), "+m" (*v) | ||
| 162 | : "id" (i)); | ||
| 159 | return c != 0; | 163 | return c != 0; |
| 160 | } | 164 | } |
| 161 | 165 | ||
diff --git a/arch/m68k/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext.h index 1320eaa4cc2a..a29dd74a17cb 100644 --- a/arch/m68k/include/asm/sigcontext.h +++ b/arch/m68k/include/asm/sigcontext.h | |||
| @@ -17,13 +17,11 @@ struct sigcontext { | |||
| 17 | #ifndef __uClinux__ | 17 | #ifndef __uClinux__ |
| 18 | # ifdef __mcoldfire__ | 18 | # ifdef __mcoldfire__ |
| 19 | unsigned long sc_fpregs[2][2]; /* room for two fp registers */ | 19 | unsigned long sc_fpregs[2][2]; /* room for two fp registers */ |
| 20 | unsigned long sc_fpcntl[3]; | ||
| 21 | unsigned char sc_fpstate[16+6*8]; | ||
| 22 | # else | 20 | # else |
| 23 | unsigned long sc_fpregs[2*3]; /* room for two fp registers */ | 21 | unsigned long sc_fpregs[2*3]; /* room for two fp registers */ |
| 22 | # endif | ||
| 24 | unsigned long sc_fpcntl[3]; | 23 | unsigned long sc_fpcntl[3]; |
| 25 | unsigned char sc_fpstate[216]; | 24 | unsigned char sc_fpstate[216]; |
| 26 | # endif | ||
| 27 | #endif | 25 | #endif |
| 28 | }; | 26 | }; |
| 29 | 27 | ||
