| .. | .. | 
|---|
| 7 | 7 |  #include <asm/alternative.h> /* Provides LOCK_PREFIX */ | 
|---|
| 8 | 8 |   | 
|---|
| 9 | 9 |  /* | 
|---|
| 10 |  | - * Non-existant functions to indicate usage errors at link time  | 
|---|
 | 10 | + * Non-existent functions to indicate usage errors at link time  | 
|---|
| 11 | 11 |   * (or compile-time if the compiler implements __compiletime_error(). | 
|---|
| 12 | 12 |   */ | 
|---|
| 13 | 13 |  extern void __xchg_wrong_size(void) | 
|---|
| .. | .. | 
|---|
| 242 | 242 |  	BUILD_BUG_ON(sizeof(*(p2)) != sizeof(long));			\ | 
|---|
| 243 | 243 |  	VM_BUG_ON((unsigned long)(p1) % (2 * sizeof(long)));		\ | 
|---|
| 244 | 244 |  	VM_BUG_ON((unsigned long)((p1) + 1) != (unsigned long)(p2));	\ | 
|---|
| 245 |  | -	asm volatile(pfx "cmpxchg%c4b %2; sete %0"			\  | 
|---|
| 246 |  | -		     : "=a" (__ret), "+d" (__old2),			\  | 
|---|
| 247 |  | -		       "+m" (*(p1)), "+m" (*(p2))			\  | 
|---|
| 248 |  | -		     : "i" (2 * sizeof(long)), "a" (__old1),		\  | 
|---|
 | 245 | +	asm volatile(pfx "cmpxchg%c5b %1"				\  | 
|---|
 | 246 | +		     CC_SET(e)						\  | 
|---|
 | 247 | +		     : CC_OUT(e) (__ret),				\  | 
|---|
 | 248 | +		       "+m" (*(p1)), "+m" (*(p2)),			\  | 
|---|
 | 249 | +		       "+a" (__old1), "+d" (__old2)			\  | 
|---|
 | 250 | +		     : "i" (2 * sizeof(long)),				\  | 
|---|
| 249 | 251 |  		       "b" (__new1), "c" (__new2));			\ | 
|---|
| 250 | 252 |  	__ret;								\ | 
|---|
| 251 | 253 |  }) | 
|---|