RE: [EXT] [PATCH net-next v2 1/4] net: ethernet: support of_get_mac_address new ERR_PTR error

2019-05-07 Thread Andy Duan
From: Petr Štetiar  Sent: Tuesday, May 7, 2019 5:25 AM
> There was NVMEM support added to of_get_mac_address, so it could now
> return ERR_PTR encoded error values, so we need to adjust all current users
> of of_get_mac_address to this new fact.
> 
> While at it, remove superfluous is_valid_ether_addr as the MAC address
> returned from of_get_mac_address is always valid and checked by
> is_valid_ether_addr anyway.
> 
> Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
> Signed-off-by: Petr Štetiar 

Test the patch on i.MX8MQ platform that fix the mem abort issue that is 
introduced in next-190507.

Tested-by: Fugang Duan 
> ---
> 
>  This is defacto v5 of the previous 05/10 patch in the series, but since the
>  v4 of this 05/10 patch wasn't picked up by the patchwork for some unknown
> reason, this patch wasn't applied with the other 9 patches in the series, so
> I'm resending it as a separate patch of this fixup series.
> 
>  Changes since v1:
> 
>   * added Fixes: tag
> 
>  Previous changelog (Patch 05/10):
> 
>   Changes since v3:
> 
>* IS_ERR_OR_NULL -> IS_ERR
> 
>   Changes since v4:
> 
>* I've just blindly replaced IS_ERR_OR_NULL with IS_ERR, but I've just
>  realized, that in some cases we still need to check for NULL, so I've
>  corrected it in following drivers/files:
> 
>   - broadcom/bgmac-bcma.c
>   - marvell/pxa168_eth.c
>   - samsung/sxgbe/sxgbe_platform.c
>   - stmicro/stmmac/stmmac_main.c
>   - wiznet/w5100.c
>   - ethernet/eth.c
> 
>  drivers/net/ethernet/aeroflex/greth.c | 2 +-
>  drivers/net/ethernet/allwinner/sun4i-emac.c   | 2 +-
>  drivers/net/ethernet/altera/altera_tse_main.c | 2 +-
>  drivers/net/ethernet/arc/emac_main.c  | 2 +-
>  drivers/net/ethernet/aurora/nb8800.c  | 2 +-
>  drivers/net/ethernet/broadcom/bcmsysport.c| 2 +-
>  drivers/net/ethernet/broadcom/bgmac-bcma.c| 2 +-
>  drivers/net/ethernet/broadcom/bgmac-platform.c| 2 +-
>  drivers/net/ethernet/broadcom/genet/bcmgenet.c| 2 +-
>  drivers/net/ethernet/cavium/octeon/octeon_mgmt.c  | 2 +-
>  drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 2 +-
>  drivers/net/ethernet/davicom/dm9000.c | 2 +-
>  drivers/net/ethernet/ethoc.c  | 2 +-
>  drivers/net/ethernet/ezchip/nps_enet.c| 2 +-
>  drivers/net/ethernet/freescale/fec_main.c | 2 +-
>  drivers/net/ethernet/freescale/fec_mpc52xx.c  | 2 +-
>  drivers/net/ethernet/freescale/fman/mac.c | 2 +-
>  drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | 2 +-
>  drivers/net/ethernet/freescale/gianfar.c  | 2 +-
>  drivers/net/ethernet/freescale/ucc_geth.c | 2 +-
>  drivers/net/ethernet/hisilicon/hisi_femac.c   | 2 +-
>  drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 2 +-
>  drivers/net/ethernet/lantiq_xrx200.c  | 2 +-
>  drivers/net/ethernet/marvell/mv643xx_eth.c| 2 +-
>  drivers/net/ethernet/marvell/mvneta.c | 2 +-
>  drivers/net/ethernet/marvell/pxa168_eth.c | 2 +-
>  drivers/net/ethernet/marvell/sky2.c   | 2 +-
>  drivers/net/ethernet/mediatek/mtk_eth_soc.c   | 2 +-
>  drivers/net/ethernet/micrel/ks8851.c  | 2 +-
>  drivers/net/ethernet/micrel/ks8851_mll.c  | 2 +-
>  drivers/net/ethernet/nxp/lpc_eth.c| 2 +-
>  drivers/net/ethernet/qualcomm/qca_spi.c   | 2 +-
>  drivers/net/ethernet/qualcomm/qca_uart.c  | 2 +-
>  drivers/net/ethernet/renesas/ravb_main.c  | 2 +-
>  drivers/net/ethernet/renesas/sh_eth.c | 2 +-
>  drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c   | 2 +-
>  drivers/net/ethernet/socionext/sni_ave.c  | 2 +-
>  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
>  drivers/net/ethernet/ti/cpsw.c| 2 +-
>  drivers/net/ethernet/ti/netcp_core.c  | 2 +-
>  drivers/net/ethernet/wiznet/w5100.c   | 2 +-
>  drivers/net/ethernet/xilinx/ll_temac_main.c   | 2 +-
>  drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
>  drivers/net/ethernet/xilinx/xilinx_emaclite.c | 2 +-
>  net/ethernet/eth.c| 2 +-
>  45 files changed, 45 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/net/ethernet/aeroflex/greth.c
> b/drivers/net/ethernet/aeroflex/greth.c
> index 47e5984..7c5cf02 100644
> --- a/drivers/net/ethernet/aeroflex/greth.c
> +++ b/drivers/net/ethernet/aeroflex/greth.c
> @@ -1459,7 +1459,7 @@ static int greth_of_probe(struct platform_device
> *ofdev)
> const u8 *addr;
> 
> addr = of_get_mac_address(ofdev->dev.of_node);
> -   if (addr) {
> +   if (!IS_ERR(addr)) {
> for (i = 0; i < 6; i++)
>  

[PATCH net-next v2 1/4] net: ethernet: support of_get_mac_address new ERR_PTR error

2019-05-06 Thread Petr Štetiar
There was NVMEM support added to of_get_mac_address, so it could now
return ERR_PTR encoded error values, so we need to adjust all current
users of of_get_mac_address to this new fact.

While at it, remove superfluous is_valid_ether_addr as the MAC address
returned from of_get_mac_address is always valid and checked by
is_valid_ether_addr anyway.

Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
Signed-off-by: Petr Štetiar 
---

 This is defacto v5 of the previous 05/10 patch in the series, but since the
 v4 of this 05/10 patch wasn't picked up by the patchwork for some unknown
 reason, this patch wasn't applied with the other 9 patches in the series, so
 I'm resending it as a separate patch of this fixup series.

 Changes since v1:

  * added Fixes: tag

 Previous changelog (Patch 05/10):

  Changes since v3:

   * IS_ERR_OR_NULL -> IS_ERR

  Changes since v4:

   * I've just blindly replaced IS_ERR_OR_NULL with IS_ERR, but I've just
 realized, that in some cases we still need to check for NULL, so I've
 corrected it in following drivers/files:

  - broadcom/bgmac-bcma.c
  - marvell/pxa168_eth.c
  - samsung/sxgbe/sxgbe_platform.c
  - stmicro/stmmac/stmmac_main.c
  - wiznet/w5100.c
  - ethernet/eth.c

 drivers/net/ethernet/aeroflex/greth.c | 2 +-
 drivers/net/ethernet/allwinner/sun4i-emac.c   | 2 +-
 drivers/net/ethernet/altera/altera_tse_main.c | 2 +-
 drivers/net/ethernet/arc/emac_main.c  | 2 +-
 drivers/net/ethernet/aurora/nb8800.c  | 2 +-
 drivers/net/ethernet/broadcom/bcmsysport.c| 2 +-
 drivers/net/ethernet/broadcom/bgmac-bcma.c| 2 +-
 drivers/net/ethernet/broadcom/bgmac-platform.c| 2 +-
 drivers/net/ethernet/broadcom/genet/bcmgenet.c| 2 +-
 drivers/net/ethernet/cavium/octeon/octeon_mgmt.c  | 2 +-
 drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 2 +-
 drivers/net/ethernet/davicom/dm9000.c | 2 +-
 drivers/net/ethernet/ethoc.c  | 2 +-
 drivers/net/ethernet/ezchip/nps_enet.c| 2 +-
 drivers/net/ethernet/freescale/fec_main.c | 2 +-
 drivers/net/ethernet/freescale/fec_mpc52xx.c  | 2 +-
 drivers/net/ethernet/freescale/fman/mac.c | 2 +-
 drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | 2 +-
 drivers/net/ethernet/freescale/gianfar.c  | 2 +-
 drivers/net/ethernet/freescale/ucc_geth.c | 2 +-
 drivers/net/ethernet/hisilicon/hisi_femac.c   | 2 +-
 drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 2 +-
 drivers/net/ethernet/lantiq_xrx200.c  | 2 +-
 drivers/net/ethernet/marvell/mv643xx_eth.c| 2 +-
 drivers/net/ethernet/marvell/mvneta.c | 2 +-
 drivers/net/ethernet/marvell/pxa168_eth.c | 2 +-
 drivers/net/ethernet/marvell/sky2.c   | 2 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   | 2 +-
 drivers/net/ethernet/micrel/ks8851.c  | 2 +-
 drivers/net/ethernet/micrel/ks8851_mll.c  | 2 +-
 drivers/net/ethernet/nxp/lpc_eth.c| 2 +-
 drivers/net/ethernet/qualcomm/qca_spi.c   | 2 +-
 drivers/net/ethernet/qualcomm/qca_uart.c  | 2 +-
 drivers/net/ethernet/renesas/ravb_main.c  | 2 +-
 drivers/net/ethernet/renesas/sh_eth.c | 2 +-
 drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c   | 2 +-
 drivers/net/ethernet/socionext/sni_ave.c  | 2 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
 drivers/net/ethernet/ti/cpsw.c| 2 +-
 drivers/net/ethernet/ti/netcp_core.c  | 2 +-
 drivers/net/ethernet/wiznet/w5100.c   | 2 +-
 drivers/net/ethernet/xilinx/ll_temac_main.c   | 2 +-
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
 drivers/net/ethernet/xilinx/xilinx_emaclite.c | 2 +-
 net/ethernet/eth.c| 2 +-
 45 files changed, 45 insertions(+), 45 deletions(-)

diff --git a/drivers/net/ethernet/aeroflex/greth.c 
b/drivers/net/ethernet/aeroflex/greth.c
index 47e5984..7c5cf02 100644
--- a/drivers/net/ethernet/aeroflex/greth.c
+++ b/drivers/net/ethernet/aeroflex/greth.c
@@ -1459,7 +1459,7 @@ static int greth_of_probe(struct platform_device *ofdev)
const u8 *addr;
 
addr = of_get_mac_address(ofdev->dev.of_node);
-   if (addr) {
+   if (!IS_ERR(addr)) {
for (i = 0; i < 6; i++)
macaddr[i] = (unsigned int) addr[i];
} else {
diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c 
b/drivers/net/ethernet/allwinner/sun4i-emac.c
index e1acafa..37ebd89 100644
--- a/drivers/net/ethernet/allwinner/sun4i-emac.c
+++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
@@ -870,7 +870,7 @@ static int emac_probe(struct