octeon_ep: ensure get mac address successfully before eth_hw_addr_set()
authorZiyang Xuan <william.xuanziyang@huawei.com>
Fri, 11 Nov 2022 07:09:35 +0000 (15:09 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Nov 2022 10:55:43 +0000 (10:55 +0000)
octep_get_mac_addr() can fail because send mbox message failed. If this
happens, octep_dev->mac_addr will be zero. It should not continue to
initialize. Add exception handling for octep_get_mac_addr() to fix it.

Fixes: 862cd659a6fb ("octeon_ep: Add driver framework and device initialization")
Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeon_ep/octep_main.c

index 53f288c..b45dd7f 100644 (file)
@@ -1072,7 +1072,11 @@ static int octep_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        netdev->max_mtu = OCTEP_MAX_MTU;
        netdev->mtu = OCTEP_DEFAULT_MTU;
 
-       octep_get_mac_addr(octep_dev, octep_dev->mac_addr);
+       err = octep_get_mac_addr(octep_dev, octep_dev->mac_addr);
+       if (err) {
+               dev_err(&pdev->dev, "Failed to get mac address\n");
+               goto register_dev_err;
+       }
        eth_hw_addr_set(netdev, octep_dev->mac_addr);
 
        err = register_netdev(netdev);