Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-3.9-rc3' of git://openrisc.net/jonas/linux

Pull OpenRISC bug fixes from Jonas Bonn:

- The GPIO descriptor work has exposed how broken the non-GPIOLIB bits
for OpenRISC were. We now require GPIOLIB as this is the preferred
way forward.

- The system.h split introduced a bug in llist.h for arches using
asm-generic/cmpxchg.h directly, which is currently only OpenRISC.
The patch here moves two defines from asm-generic/atomic.h to
asm-generic/cmpxchg.h to make things work as they should.

- The VIRT_TO_BUS selector was added for OpenRISC, but OpenRISC does
not have the virt_to_bus methods, so there's a patch to remove it
again.

* tag 'for-3.9-rc3' of git://openrisc.net/jonas/linux:
openrisc: remove HAVE_VIRT_TO_BUS
asm-generic: move cmpxchg*_local defs to cmpxchg.h
openrisc: require gpiolib

+11 -8
+1 -2
arch/openrisc/Kconfig
··· 9 9 select OF_EARLY_FLATTREE 10 10 select IRQ_DOMAIN 11 11 select HAVE_MEMBLOCK 12 - select ARCH_WANT_OPTIONAL_GPIOLIB 12 + select ARCH_REQUIRE_GPIOLIB 13 13 select HAVE_ARCH_TRACEHOOK 14 14 select HAVE_GENERIC_HARDIRQS 15 - select VIRT_TO_BUS 16 15 select GENERIC_IRQ_CHIP 17 16 select GENERIC_IRQ_PROBE 18 17 select GENERIC_IRQ_SHOW
-6
include/asm-generic/atomic.h
··· 136 136 #define atomic_xchg(ptr, v) (xchg(&(ptr)->counter, (v))) 137 137 #define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new))) 138 138 139 - #define cmpxchg_local(ptr, o, n) \ 140 - ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ 141 - (unsigned long)(n), sizeof(*(ptr)))) 142 - 143 - #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) 144 - 145 139 static inline int __atomic_add_unless(atomic_t *v, int a, int u) 146 140 { 147 141 int c, old;
+10
include/asm-generic/cmpxchg.h
··· 92 92 */ 93 93 #include <asm-generic/cmpxchg-local.h> 94 94 95 + #ifndef cmpxchg_local 96 + #define cmpxchg_local(ptr, o, n) \ 97 + ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ 98 + (unsigned long)(n), sizeof(*(ptr)))) 99 + #endif 100 + 101 + #ifndef cmpxchg64_local 102 + #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) 103 + #endif 104 + 95 105 #define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n)) 96 106 #define cmpxchg64(ptr, o, n) cmpxchg64_local((ptr), (o), (n)) 97 107