Re: [PATCH 2/4] net: i825xx: Use absolute_pointer for memcpy on fixed memory location

From: Jeroen Roovers
Date: Sun Sep 12 2021 - 12:13:13 EST


On Sun, 12 Sep 2021 09:01:47 -0700
Guenter Roeck <linux@xxxxxxxxxxxx> wrote:

> gcc 11.x reports the following compiler warning/error.
>
> drivers/net/ethernet/i825xx/82596.c: In function 'i82596_probe':
> ./arch/m68k/include/asm/string.h:72:25: error:
> '__builtin_memcpy' reading 6 bytes from a region of size 0
> [-Werror=stringop-overread]
>
> Use absolute_address() to work around the problem.

=> absolute_pointer()

> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> ---
> drivers/net/ethernet/i825xx/82596.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/i825xx/82596.c
> b/drivers/net/ethernet/i825xx/82596.c index
> b8a40146b895..b482f6f633bd 100644 ---
> a/drivers/net/ethernet/i825xx/82596.c +++
> b/drivers/net/ethernet/i825xx/82596.c @@ -1144,7 +1144,7 @@ static
> struct net_device * __init i82596_probe(void) err = -ENODEV;
> goto out;
> }
> - memcpy(eth_addr, (void *) 0xfffc1f2c,
> ETH_ALEN); /* YUCK! Get addr from NOVRAM */
> + memcpy(eth_addr, absolute_pointer(0xfffc1f2c),
> ETH_ALEN); /* YUCK! Get addr from NOVRAM */ dev->base_addr =
> MVME_I596_BASE; dev->irq = (unsigned) MVME16x_IRQ_I596;
> goto found;


Regards,
jer