Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'net-cpsw_new-fix-multiple-issues-in-the-cpsw_probe-error-path'

Kevin Hao says:

====================
net: cpsw_new: Fix multiple issues in the cpsw_probe() error path

These two patches address duplicate or unnecessary netdev unregistration
in the cpsw_probe() error handling path.
====================

Link: https://patch.msgid.link/20260205-cpsw-error-path-v1-0-6e58bae6b299@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+6 -9
+6 -9
drivers/net/ethernet/ti/cpsw_new.c
··· 1472 1472 1473 1473 for (i = 0; i < cpsw->data.slaves; i++) { 1474 1474 ndev = cpsw->slaves[i].ndev; 1475 - if (!ndev) 1475 + if (!ndev || ndev->reg_state != NETREG_REGISTERED) 1476 1476 continue; 1477 1477 1478 1478 priv = netdev_priv(ndev); ··· 1494 1494 if (ret) { 1495 1495 dev_err(cpsw->dev, 1496 1496 "cpsw: err registering net device%d\n", i); 1497 - cpsw->slaves[i].ndev = NULL; 1498 1497 break; 1499 1498 } 1500 1499 } ··· 2002 2003 /* setup netdevs */ 2003 2004 ret = cpsw_create_ports(cpsw); 2004 2005 if (ret) 2005 - goto clean_unregister_netdev; 2006 + goto clean_cpts; 2006 2007 2007 2008 /* Grab RX and TX IRQs. Note that we also have RX_THRESHOLD and 2008 2009 * MISC IRQs which are always kept disabled with this driver so ··· 2016 2017 0, dev_name(dev), cpsw); 2017 2018 if (ret < 0) { 2018 2019 dev_err(dev, "error attaching irq (%d)\n", ret); 2019 - goto clean_unregister_netdev; 2020 + goto clean_cpts; 2020 2021 } 2021 2022 2022 2023 ret = devm_request_irq(dev, cpsw->irqs_table[1], cpsw_tx_interrupt, 2023 2024 0, dev_name(dev), cpsw); 2024 2025 if (ret < 0) { 2025 2026 dev_err(dev, "error attaching irq (%d)\n", ret); 2026 - goto clean_unregister_netdev; 2027 + goto clean_cpts; 2027 2028 } 2028 2029 2029 2030 if (!cpsw->cpts) ··· 2033 2034 0, dev_name(&pdev->dev), cpsw); 2034 2035 if (ret < 0) { 2035 2036 dev_err(dev, "error attaching misc irq (%d)\n", ret); 2036 - goto clean_unregister_netdev; 2037 + goto clean_cpts; 2037 2038 } 2038 2039 2039 2040 /* Enable misc CPTS evnt_pend IRQ */ ··· 2042 2043 skip_cpts: 2043 2044 ret = cpsw_register_notifiers(cpsw); 2044 2045 if (ret) 2045 - goto clean_unregister_netdev; 2046 + goto clean_cpts; 2046 2047 2047 2048 ret = cpsw_register_devlink(cpsw); 2048 2049 if (ret) ··· 2064 2065 2065 2066 clean_unregister_notifiers: 2066 2067 cpsw_unregister_notifiers(cpsw); 2067 - clean_unregister_netdev: 2068 - cpsw_unregister_ports(cpsw); 2069 2068 clean_cpts: 2070 2069 cpts_release(cpsw->cpts); 2071 2070 cpdma_ctlr_destroy(cpsw->dma);