On Mon, Dec 19, 2022 at 10:24:33PM +0100, Janis Schoetterl-Glausch wrote:
On Wed, 2022-12-14 at 10:23 +0800, kernel test robot wrote:
Hi Janis,
Thank you for the patch! Yet something to improve: All errors (new ones prefixed by >>):
s390-linux-ld: arch/s390/kvm/gaccess.o: in function `__cmpxchg_user_key':
arch/s390/include/asm/uaccess.h:410: undefined reference to `__ashlti3' s390-linux-ld: arch/s390/include/asm/uaccess.h:411: undefined reference to `__ashlti3'
s390-linux-ld: arch/s390/include/asm/uaccess.h:458: undefined reference to `__ashlti3' s390-linux-ld: arch/s390/include/asm/uaccess.h:459: undefined reference to `__ashlti3' 51098f0eb22e2f Janis Schoetterl-Glausch 2022-11-16 @410 _old = (old & 0xff) << shift; 51098f0eb22e2f Janis Schoetterl-Glausch 2022-11-16 @411 _new = (new & 0xff) << shift;
Not sure what it is in this config that causes gcc to emit this symbol instead of a shift instruction, but casting old/new to 32 bit fixes the error.
Right.. now we have the same fun with 128 bit arithmetics that we had with 64 bit arithmetics on 32 bit. I really missed that :)
Fixed the way you proposed it: https://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git/commit/?h=cmp...