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 branch 'parisc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc build fix from Helge Deller:
"This unbreaks the kernel compilation on parisc with gcc-4.9"

* 'parisc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: fix out-of-register compiler error in ldcw inline assembler function

+10 -3
+10 -3
arch/parisc/include/asm/ldcw.h
··· 33 33 34 34 #endif /*!CONFIG_PA20*/ 35 35 36 - /* LDCW, the only atomic read-write operation PA-RISC has. *sigh*. */ 36 + /* LDCW, the only atomic read-write operation PA-RISC has. *sigh*. 37 + We don't explicitly expose that "*a" may be written as reload 38 + fails to find a register in class R1_REGS when "a" needs to be 39 + reloaded when generating 64-bit PIC code. Instead, we clobber 40 + memory to indicate to the compiler that the assembly code reads 41 + or writes to items other than those listed in the input and output 42 + operands. This may pessimize the code somewhat but __ldcw is 43 + usually used within code blocks surrounded by memory barriors. */ 37 44 #define __ldcw(a) ({ \ 38 45 unsigned __ret; \ 39 - __asm__ __volatile__(__LDCW " 0(%2),%0" \ 40 - : "=r" (__ret), "+m" (*(a)) : "r" (a)); \ 46 + __asm__ __volatile__(__LDCW " 0(%1),%0" \ 47 + : "=r" (__ret) : "r" (a) : "memory"); \ 41 48 __ret; \ 42 49 }) 43 50