Re: linux-next: Tree for Feb 26 (drivers/mtd/ubi/nvmem.c)

From: Randy Dunlap
Date: Mon Feb 26 2024 - 20:10:13 EST




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