Commit 59766edc79da0583eff7d0a9e1049b0d3c5676b0

Authored by Linus Torvalds

Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300:
  MN10300: atomic_read() should ensure it emits a load
  MN10300: The SMP_ICACHE_INV_FLUSH_RANGE IPI command does not exist
  MN10300: Proper use of macros get_user() in the case of incremented pointers

Showing 3 changed files Side-by-side Diff

arch/mn10300/include/asm/atomic.h
... ... @@ -139,7 +139,7 @@
139 139 * Atomically reads the value of @v. Note that the guaranteed
140 140 * useful range of an atomic_t is only 24 bits.
141 141 */
142   -#define atomic_read(v) ((v)->counter)
  142 +#define atomic_read(v) (ACCESS_ONCE((v)->counter))
143 143  
144 144 /**
145 145 * atomic_set - set atomic variable
arch/mn10300/include/asm/uaccess.h
... ... @@ -160,9 +160,10 @@
160 160  
161 161 #define __get_user_check(x, ptr, size) \
162 162 ({ \
  163 + const __typeof__(ptr) __guc_ptr = (ptr); \
163 164 int _e; \
164   - if (likely(__access_ok((unsigned long) (ptr), (size)))) \
165   - _e = __get_user_nocheck((x), (ptr), (size)); \
  165 + if (likely(__access_ok((unsigned long) __guc_ptr, (size)))) \
  166 + _e = __get_user_nocheck((x), __guc_ptr, (size)); \
166 167 else { \
167 168 _e = -EFAULT; \
168 169 (x) = (__typeof__(x))0; \
arch/mn10300/mm/cache-inv-icache.c
... ... @@ -69,7 +69,7 @@
69 69  
70 70 /* invalidate the icache coverage on that region */
71 71 mn10300_local_icache_inv_range2(addr + off, size);
72   - smp_cache_call(SMP_ICACHE_INV_FLUSH_RANGE, start, end);
  72 + smp_cache_call(SMP_ICACHE_INV_RANGE, start, end);
73 73 }
74 74  
75 75 /**
... ... @@ -101,7 +101,7 @@
101 101 * directly */
102 102 start_page = (start >= 0x80000000UL) ? start : 0x80000000UL;
103 103 mn10300_icache_inv_range(start_page, end);
104   - smp_cache_call(SMP_ICACHE_INV_FLUSH_RANGE, start, end);
  104 + smp_cache_call(SMP_ICACHE_INV_RANGE, start, end);
105 105 if (start_page == start)
106 106 goto done;
107 107 end = start_page;