parisc: do not inline pa_memcpy()
Helge Deller
maintainerPATCH 1/1 parisc: do not inline pa_memcpy()
gcc (4.8.x) creates wrong code when pa_memcpy() is inlined. Especially in 32bit builds it calculates wrong return values if we encounter a fault during execution of the memcpy.
Signed-off-by Helge Deller <[email protected]>
arch/parisc/lib/memcpy.c +1 -1
@@ -460,7 +460,7 @@ handle_store_error:/* Returns 0 for success, otherwise, returns number of bytes not transferred. */ -static unsigned long pa_memcpy (void *dstp,const void *srcp,unsigned long len) +static noinline unsigned long pa_memcpy (void *dstp,const void *srcp,unsigned long len) {unsigned long ret, fault_addr, reference;struct exception_data *d;