On 2/25/24 22:55, Stephen Rothwell wrote: > Hi all, > > Changes since 20240223: > on powerpc32: In file included from ./arch/powerpc/include/generated/asm/div64.h:1, from ../include/linux/math.h:6, from ../include/linux/kernel.h:27, from ../arch/powerpc/include/asm/page.h:11, from ../arch/powerpc/include/asm/thread_info.h:13, from ../include/linux/thread_info.h:60, from ../arch/powerpc/include/asm/ptrace.h:342, from ../arch/powerpc/include/asm/hw_irq.h:12, from ../arch/powerpc/include/asm/irqflags.h:12, from ../include/linux/irqflags.h:18, from ../include/asm-generic/cmpxchg-local.h:6, from ../arch/powerpc/include/asm/cmpxchg.h:755, from ../arch/powerpc/include/asm/atomic.h:11, from ../include/linux/atomic.h:7, from ../include/linux/rcupdate.h:25, from ../include/linux/rbtree.h:24, from ../drivers/mtd/ubi/ubi.h:14, from ../drivers/mtd/ubi/nvmem.c:7: ../drivers/mtd/ubi/nvmem.c: In function 'ubi_nvmem_reg_read': ../include/asm-generic/div64.h:222:35: warning: comparison of distinct pointer types lacks a cast 222 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \ | ^~ ../drivers/mtd/ubi/nvmem.c:34:16: note: in expansion of macro 'do_div' 34 | offs = do_div(lnum, unv->usable_leb_size); | ^~~~~~ In file included from ../include/linux/build_bug.h:5, from ../include/linux/container_of.h:5, from ../include/linux/list.h:5, from ../drivers/mtd/ubi/ubi.h:13: ../include/asm-generic/div64.h:234:32: warning: right shift count >= width of type [-Wshift-count-overflow] 234 | } else if (likely(((n) >> 32) == 0)) { \ | ^~ ../include/linux/compiler.h:76:45: note: in definition of macro 'likely' 76 | # define likely(x) __builtin_expect(!!(x), 1) | ^ ../drivers/mtd/ubi/nvmem.c:34:16: note: in expansion of macro 'do_div' 34 | offs = do_div(lnum, unv->usable_leb_size); | ^~~~~~ ../include/asm-generic/div64.h:238:36: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types] 238 | __rem = __div64_32(&(n), __base); \ | ^~~~ | | | int * ../drivers/mtd/ubi/nvmem.c:34:16: note: in expansion of macro 'do_div' 34 | offs = do_div(lnum, unv->usable_leb_size); | ^~~~~~ ../include/asm-generic/div64.h:213:38: note: expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'int *' 213 | extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); | ~~~~~~~~~~^~~~~~~~ -- #Randy