]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Nov 2022 08:27:36 +0000 (09:27 +0100)
[ Upstream commit 848ffce2f0c93f3481052340a919123a21f808b6 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/octeon_ep/octep_main.c

index ac1e37afbe7b96713d90564e0879c386c2e89987..8a6a81bcec5cce38e2dd787a5d2af4dce7f2110f 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);