Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59766edc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
parents 2990821d af794206
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -139,7 +139,7 @@ static inline unsigned long __cmpxchg(volatile unsigned long *m,
 * Atomically reads the value of @v.  Note that the guaranteed
 * useful range of an atomic_t is only 24 bits.
 */
#define atomic_read(v)	((v)->counter)
#define atomic_read(v)	(ACCESS_ONCE((v)->counter))

/**
 * atomic_set - set atomic variable
+3 −2
Original line number Diff line number Diff line
@@ -160,9 +160,10 @@ struct __large_struct { unsigned long buf[100]; };

#define __get_user_check(x, ptr, size)					\
({									\
	const __typeof__(ptr) __guc_ptr = (ptr);			\
	int _e;								\
	if (likely(__access_ok((unsigned long) (ptr), (size))))		\
		_e = __get_user_nocheck((x), (ptr), (size));		\
	if (likely(__access_ok((unsigned long) __guc_ptr, (size))))	\
		_e = __get_user_nocheck((x), __guc_ptr, (size));	\
	else {								\
		_e = -EFAULT;						\
		(x) = (__typeof__(x))0;					\
+2 −2
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ static void flush_icache_page_range(unsigned long start, unsigned long end)

	/* invalidate the icache coverage on that region */
	mn10300_local_icache_inv_range2(addr + off, size);
	smp_cache_call(SMP_ICACHE_INV_FLUSH_RANGE, start, end);
	smp_cache_call(SMP_ICACHE_INV_RANGE, start, end);
}

/**
@@ -101,7 +101,7 @@ void flush_icache_range(unsigned long start, unsigned long end)
		 * directly */
		start_page = (start >= 0x80000000UL) ? start : 0x80000000UL;
		mn10300_icache_inv_range(start_page, end);
		smp_cache_call(SMP_ICACHE_INV_FLUSH_RANGE, start, end);
		smp_cache_call(SMP_ICACHE_INV_RANGE, start, end);
		if (start_page == start)
			goto done;
		end = start_page;