2019-05-06 21:27:46

by Petr Štetiar

[permalink] [raw]
Subject: [PATCH net-next v2 4/4] net: usb: smsc: fix warning reported by kbuild test robot

This patch fixes following warning reported by kbuild test robot:

In function ‘memcpy’,
inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3,
inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2:
./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull]
return __builtin_memcpy(p, q, size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’:
./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’

I've replaced the offending memcpy with ether_addr_copy, because I'm
100% sure, that of_get_mac_address can't return NULL as it returns valid
pointer or ERR_PTR encoded value, nothing else.

I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this
would make the warning disappear also, but it would be confusing to
check for impossible return value just to make a compiler happy.

Fixes: adfb3cb2c52e ("net: usb: support of_get_mac_address new ERR_PTR error")
Reported-by: kbuild test robot <[email protected]>
Signed-off-by: Petr Štetiar <[email protected]>
---
drivers/net/usb/smsc75xx.c | 2 +-
drivers/net/usb/smsc95xx.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c
index d27b627..e4c2f3a 100644
--- a/drivers/net/usb/smsc75xx.c
+++ b/drivers/net/usb/smsc75xx.c
@@ -775,7 +775,7 @@ static void smsc75xx_init_mac_address(struct usbnet *dev)
/* maybe the boot loader passed the MAC address in devicetree */
mac_addr = of_get_mac_address(dev->udev->dev.of_node);
if (!IS_ERR(mac_addr)) {
- memcpy(dev->net->dev_addr, mac_addr, ETH_ALEN);
+ ether_addr_copy(dev->net->dev_addr, mac_addr);
return;
}

diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index ab23911..a0e1199 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -918,7 +918,7 @@ static void smsc95xx_init_mac_address(struct usbnet *dev)
/* maybe the boot loader passed the MAC address in devicetree */
mac_addr = of_get_mac_address(dev->udev->dev.of_node);
if (!IS_ERR(mac_addr)) {
- memcpy(dev->net->dev_addr, mac_addr, ETH_ALEN);
+ ether_addr_copy(dev->net->dev_addr, mac_addr);
return;
}

--
1.9.1


2019-05-06 21:30:37

by Woojung.Huh

[permalink] [raw]
Subject: RE: [PATCH net-next v2 4/4] net: usb: smsc: fix warning reported by kbuild test robot

> This patch fixes following warning reported by kbuild test robot:
>
> In function ‘memcpy’,
> inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3,
> inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2:
> ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull]
> return __builtin_memcpy(p, q, size);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’:
> ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’
>
> I've replaced the offending memcpy with ether_addr_copy, because I'm
> 100% sure, that of_get_mac_address can't return NULL as it returns valid
> pointer or ERR_PTR encoded value, nothing else.
>
> I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this
> would make the warning disappear also, but it would be confusing to
> check for impossible return value just to make a compiler happy.
>
> Fixes: adfb3cb2c52e ("net: usb: support of_get_mac_address new ERR_PTR error")
> Reported-by: kbuild test robot <[email protected]>
> Signed-off-by: Petr Štetiar <[email protected]>
> ---

Reviewed-by: Woojung Huh <[email protected]>