On Wed, Aug 16, 2023 at 04:52:19PM -0500, nick.hawkins@xxxxxxx wrote: > From: Nick Hawkins <nick.hawkins@xxxxxxx> > > The GXP contains two Ethernet MACs that can be connected externally > to several physical devices. From an external interface perspective > the BMC provides two SERDES interface connections capable of either > SGMII or 1000Base-X operation. The BMC also provides a RMII interface > for sideband connections to external Ethernet controllers. > > The primary MAC (umac0) can be mapped to either SGMII/1000-BaseX > SERDES interface. The secondary MAC (umac1) can be mapped to only > the second SGMII/1000-Base X Serdes interface or it can be mapped for > RMII sideband. > > Signed-off-by: Nick Hawkins <nick.hawkins@xxxxxxx> ... > diff --git a/drivers/net/ethernet/hpe/gxp-umac.c b/drivers/net/ethernet/hpe/gxp-umac.c ... > +static int umac_init_mac_address(struct net_device *ndev) > +{ > + struct umac_priv *umac = netdev_priv(ndev); > + struct platform_device *pdev = umac->pdev; > + char addr[ETH_ALEN]; > + int err; > + > + err = of_get_mac_address(pdev->dev.of_node, addr); > + if (err) > + netdev_err(ndev, "Failed to get address from device-tree: %d\n", > + err); > + return -EINVAL; Hi Nick, it looks like there should be some {} involved in the condition above, else the function will return -EINVAL unconditionally. Flagged by W=1 builds with clang-16 and gcc-13. > + > + if (is_valid_ether_addr(addr)) { > + dev_addr_set(ndev, addr); > + netdev_dbg(ndev, > + "Read MAC address %pM from DTB\n", ndev->dev_addr); > + } else { > + netdev_err(ndev, "Mac Address is Invalid"); > + return -EINVAL; > + } > + > + dev_addr_set(ndev, addr); > + umac_set_mac_address(ndev, addr); > + > + return 0; > +} ...