[][kernel][common][eth][Fix issues detected by Coverity scan]
[Description]
Fix issues detected by Coverity scan.
1.mtk_device_event: DEADCODE
2.mtk_mac_finish: MISSING_LOCK
3.mtk_usxgmii_pcs_link_up: MISSING_LOCK
[Release-log]
N/A
Change-Id: Ic96f8bb0ef32ff9935e2a7994ce37db60fcf6120
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/8853534
diff --git a/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 68e9cca..2af1400 100644
--- a/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -816,9 +816,12 @@
/* Enable SGMII */
if (interface == PHY_INTERFACE_MODE_SGMII ||
- phy_interface_mode_is_8023z(interface))
+ phy_interface_mode_is_8023z(interface)) {
+ spin_lock(ð->syscfg0_lock);
regmap_update_bits(eth->ethsys, ETHSYS_SYSCFG0,
SYSCFG0_SGMII_MASK, mac->syscfg0);
+ spin_unlock(ð->syscfg0_lock);
+ }
return 0;
}
@@ -3985,9 +3988,6 @@
if (s.base.speed == 0 || s.base.speed == ((__u32)-1))
return NOTIFY_DONE;
- if (queue >= MTK_QDMA_TX_NUM)
- return NOTIFY_DONE;
-
if (mac->speed > 0 && mac->speed < s.base.speed)
s.base.speed = 0;
diff --git a/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c b/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
index 7d3f35f..0e4d9ee 100644
--- a/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
+++ b/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
@@ -769,6 +769,7 @@
{
struct mtk_usxgmii_pcs *mpcs = pcs_to_mtk_usxgmii_pcs(pcs);
unsigned long t_start = jiffies;
+ unsigned int mpcs_mode;
/* Reconfiguring USXGMII to ensure the quality of the RX signal
* after the line side link up.
@@ -782,7 +783,11 @@
if (mtk_usxgmii_link_status(mpcs))
return;
- if (mpcs->mode == MLO_AN_PHY)
+ spin_lock(&mpcs->regmap_lock);
+ mpcs_mode = mpcs->mode;
+ spin_unlock(&mpcs->regmap_lock);
+
+ if (mpcs_mode == MLO_AN_PHY)
mtk_usxgmii_pcs_config(&mpcs->pcs, mode,
interface, NULL, false);
} while (time_before(jiffies, t_start + msecs_to_jiffies(3000)));