Hi Kernel test robot, CC linux-sparse On Thu, Jan 2, 2025 at 10:40 PM kernel test robot <lkp@xxxxxxxxx> wrote: > First bad commit (maybe != root cause): > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git master > head: 17810b1de0e9e5c1000cf8f5b4787ad930b0353e > commit: e96424b86d5098f44279399b85551e0f84a1c9e9 [2/2] m68k: Use kernel's generic muldi3 libgcc function > config: m68k-randconfig-r122-20250101 (https://download.01.org/0day-ci/archive/20250103/202501030516.uZrwnuQQ-lkp@xxxxxxxxx/config) > compiler: m68k-linux-gcc (GCC) 14.2.0 > reproduce: (https://download.01.org/0day-ci/archive/20250103/202501030516.uZrwnuQQ-lkp@xxxxxxxxx/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > | Closes: https://lore.kernel.org/oe-kbuild-all/202501030516.uZrwnuQQ-lkp@xxxxxxxxx/ > > sparse warnings: (new ones prefixed by >>) > >> lib/muldi3.c:53:28: sparse: sparse: asm output is not an lvalue > >> lib/muldi3.c:53:28: sparse: sparse: asm output is not an lvalue > >> lib/muldi3.c:53:28: sparse: sparse: not addressable > >> lib/muldi3.c:53:28: sparse: sparse: generating address of non-lvalue (11) > >> lib/muldi3.c:53:28: sparse: sparse: generating address of non-lvalue (11) > > vim +53 lib/muldi3.c > > b35cd9884fa5d81 Palmer Dabbelt 2017-05-23 48 > b35cd9884fa5d81 Palmer Dabbelt 2017-05-23 49 long long notrace __muldi3(long long u, long long v) > b35cd9884fa5d81 Palmer Dabbelt 2017-05-23 50 { > b35cd9884fa5d81 Palmer Dabbelt 2017-05-23 51 const DWunion uu = {.ll = u}; > b35cd9884fa5d81 Palmer Dabbelt 2017-05-23 52 const DWunion vv = {.ll = v}; > b35cd9884fa5d81 Palmer Dabbelt 2017-05-23 @53 DWunion w = {.ll = __umulsidi3(uu.s.low, vv.s.low)}; > > :::::: The code at line 53 was first introduced by commit > :::::: b35cd9884fa5d81c9d5e7f57c9d03264ae2bd835 lib: Add shared copies of some GCC library routines Thanks for the report! Comparing m68k to the other two architectures that use GENERIC_LIB_MULDI3 (csky and xtensa), and to microblaze (which has its own arch/microblaze/lib/muldi3.c), that don't trigger this error, the difference is that m68k uses inline assembler in its umul_ppmm() implementation. I don't see anything that's wrong with it, though. Perhaps this is an issue with sparse? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds