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=cmpxchg_user_key&id=b33d59fb37ddcb6ee65d4fa23cc3d58793d13c5b