--- ./arch/alpha/lib/ev67-strcat.S.orig 2018-01-28 17:37:31.000000000 -0800 +++ ./arch/alpha/lib/ev67-strcat.S 2018-01-29 21:01:33.000000000 -0800 @@ -49,7 +49,7 @@ addq $16, $3, $16 # E : /* Now do the append. */ mov $26, $23 # E : - br __stxcpy # L0 : + jmp $31, __stxcpy # L0 : .end strcat EXPORT_SYMBOL(strcat) --- ./arch/alpha/lib/ev67-strncat.S.orig 2018-01-29 21:47:37.000000000 -0800 +++ ./arch/alpha/lib/ev67-strncat.S 2018-01-29 21:47:52.000000000 -0800 @@ -54,7 +54,7 @@ $found: cttz $2, $3 # U0 : addq $16, $3, $16 # E : nop # E : - bsr $23, __stxncpy # L0 :/* Now do the append. */ + jsr $23, __stxncpy # L0 :/* Now do the append. */ /* Worry about the null termination. */ --- ./arch/alpha/lib/strcat.S.orig 2018-01-30 13:33:10.000000000 -0800 +++ ./arch/alpha/lib/strcat.S 2018-01-30 13:33:28.000000000 -0800 @@ -48,7 +48,7 @@ /* Now do the append. */ mov $26, $23 - br __stxcpy + jmp $31, __stxcpy .end strcat EXPORT_SYMBOL(strcat); --- ./arch/alpha/lib/strcpy.S.orig 2018-01-30 13:34:26.000000000 -0800 +++ ./arch/alpha/lib/strcpy.S 2018-01-30 13:35:09.000000000 -0800 @@ -18,7 +18,7 @@ mov $16, $0 # set up return value mov $26, $23 # set up return address unop - br __stxcpy # do the copy + jmp $31, __stxcpy # do the copy .end strcpy EXPORT_SYMBOL(strcpy) --- ./arch/alpha/lib/strncpy.S.orig 2018-01-30 13:34:48.000000000 -0800 +++ ./arch/alpha/lib/strncpy.S 2018-01-30 13:37:10.000000000 -0800 @@ -8,7 +8,7 @@ * * Or, rather, if the kernel cared about that weird ANSI quirk. This * version has cropped that bit o' nastiness as well as assuming that - * __stxncpy is in range of a branch. + * __stxncpy is in range of a branch. Sometimes it is not so use jump. */ #include .set noat @@ -26,7 +26,7 @@ mov $16, $0 # set return value now beq $18, $zerolen unop - bsr $23, __stxncpy # do the work of the copy + jsr $23, __stxncpy # do the work of the copy unop bne $18, $multiword # do we have full words left? --- ./arch/alpha/include/asm/uaccess.h.orig 2018-01-28 14:47:14.000000000 -0800 +++ ./arch/alpha/include/asm/uaccess.h 2018-01-30 13:27:43.000000000 -0800 @@ -344,13 +344,9 @@ /* This little bit of silliness is to get the GP loaded for a function that ordinarily wouldn't. Otherwise we could have it done by the macro directly, which can be optimized the linker. */ -#ifdef MODULE + #define __module_address(sym) "r"(sym), #define __module_call(ra, arg, sym) "jsr $" #ra ",(%" #arg ")," #sym -#else -#define __module_address(sym) -#define __module_call(ra, arg, sym) "bsr $" #ra "," #sym " !samegp" -#endif extern void __copy_user(void);