diff options
Diffstat (limited to 'arch/x86/include/asm/refcount.h')
-rw-r--r-- | arch/x86/include/asm/refcount.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/include/asm/refcount.h b/arch/x86/include/asm/refcount.h index 4e44250e7d0d..4cf11d88d3b3 100644 --- a/arch/x86/include/asm/refcount.h +++ b/arch/x86/include/asm/refcount.h | |||
@@ -17,7 +17,7 @@ | |||
17 | #define _REFCOUNT_EXCEPTION \ | 17 | #define _REFCOUNT_EXCEPTION \ |
18 | ".pushsection .text..refcount\n" \ | 18 | ".pushsection .text..refcount\n" \ |
19 | "111:\tlea %[counter], %%" _ASM_CX "\n" \ | 19 | "111:\tlea %[counter], %%" _ASM_CX "\n" \ |
20 | "112:\t" ASM_UD0 "\n" \ | 20 | "112:\t" ASM_UD2 "\n" \ |
21 | ASM_UNREACHABLE \ | 21 | ASM_UNREACHABLE \ |
22 | ".popsection\n" \ | 22 | ".popsection\n" \ |
23 | "113:\n" \ | 23 | "113:\n" \ |
@@ -67,13 +67,13 @@ static __always_inline __must_check | |||
67 | bool refcount_sub_and_test(unsigned int i, refcount_t *r) | 67 | bool refcount_sub_and_test(unsigned int i, refcount_t *r) |
68 | { | 68 | { |
69 | GEN_BINARY_SUFFIXED_RMWcc(LOCK_PREFIX "subl", REFCOUNT_CHECK_LT_ZERO, | 69 | GEN_BINARY_SUFFIXED_RMWcc(LOCK_PREFIX "subl", REFCOUNT_CHECK_LT_ZERO, |
70 | r->refs.counter, "er", i, "%0", e); | 70 | r->refs.counter, "er", i, "%0", e, "cx"); |
71 | } | 71 | } |
72 | 72 | ||
73 | static __always_inline __must_check bool refcount_dec_and_test(refcount_t *r) | 73 | static __always_inline __must_check bool refcount_dec_and_test(refcount_t *r) |
74 | { | 74 | { |
75 | GEN_UNARY_SUFFIXED_RMWcc(LOCK_PREFIX "decl", REFCOUNT_CHECK_LT_ZERO, | 75 | GEN_UNARY_SUFFIXED_RMWcc(LOCK_PREFIX "decl", REFCOUNT_CHECK_LT_ZERO, |
76 | r->refs.counter, "%0", e); | 76 | r->refs.counter, "%0", e, "cx"); |
77 | } | 77 | } |
78 | 78 | ||
79 | static __always_inline __must_check | 79 | static __always_inline __must_check |