Commit 7300940f authored by Tony Lindgren's avatar Tony Lindgren

ARM: OMAP: Manual merge after sync with mainline

Manual merge after sync with mainline
parent 995396f3
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#define __ASM_ARM_ATOMIC_H #define __ASM_ARM_ATOMIC_H
#include <linux/config.h> #include <linux/config.h>
#include <linux/types.h> #include <linux/compiler.h>
typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int counter; } atomic_t;
...@@ -83,11 +83,12 @@ static inline int atomic_sub_return(int i, atomic_t *v) ...@@ -83,11 +83,12 @@ static inline int atomic_sub_return(int i, atomic_t *v)
static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new) static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
{ {
u32 oldval, res; unsigned long oldval, res;
do { do {
__asm__ __volatile__("@ atomic_cmpxchg\n" __asm__ __volatile__("@ atomic_cmpxchg\n"
"ldrex %1, [%2]\n" "ldrex %1, [%2]\n"
"mov %0, #0\n"
"teq %1, %3\n" "teq %1, %3\n"
"strexeq %0, %4, [%2]\n" "strexeq %0, %4, [%2]\n"
: "=&r" (res), "=&r" (oldval) : "=&r" (res), "=&r" (oldval)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment