diff mbox series

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

Message ID 20210912160149.2227137-3-linux@roeck-us.net (mailing list archive)
State New
Headers show
Series Introduce and use absolute_pointer macro | expand

Commit Message

Guenter Roeck Sept. 12, 2021, 4:01 p.m. UTC
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.

Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/net/ethernet/i825xx/82596.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jeroen Roovers Sept. 12, 2021, 4:11 p.m. UTC | #1
On Sun, 12 Sep 2021 09:01:47 -0700
Guenter Roeck <linux@roeck-us.net> 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@linux-m68k.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  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
Guenter Roeck Sept. 12, 2021, 4:16 p.m. UTC | #2
On 9/12/21 9:11 AM, Jeroen Roovers wrote:
> On Sun, 12 Sep 2021 09:01:47 -0700
> Guenter Roeck <linux@roeck-us.net> 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()
> 

Oopsie. Thanks!

Guenter

>> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>>   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
>
diff mbox series

Patch

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;