[][kernel][common][eth][Fix Coverity scan warning]
[Description]
Fix Coverity scan warning.
[Release-log]
N/A
Change-Id: I7867c00156d1e439071cd8e606212d4ae011a52a
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6840068
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
index 5ad8645..69e92db 100755
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
@@ -265,7 +265,7 @@
{
struct mtk_eth *eth = file->private_data;
char buf[32], *token, *p = buf;
- u32 reg, value, phy;
+ unsigned long reg, value, phy;
int ret;
if (!mt7530_exist(eth))
@@ -314,7 +314,7 @@
{
struct mtk_eth *eth = file->private_data;
char buf[32], *token, *p = buf;
- u32 reg, value, phy;
+ unsigned long reg, value, phy;
int ret;
if (*off != 0)
@@ -766,7 +766,8 @@
seq_printf(seq, "cpu next free: %d\n", (int)(ring->next_free - ring->dma));
seq_printf(seq, "cpu last free: %d\n", (int)(ring->last_free - ring->dma));
for (i = 0; i < MTK_DMA_SIZE; i++) {
- dma_addr_t tmp = ring->phys + i * eth->soc->txrx.txd_size;
+ dma_addr_t tmp = ring->phys +
+ i * (dma_addr_t)eth->soc->txrx.txd_size;
tx_ring = ring->dma + i * eth->soc->txrx.txd_size;
@@ -807,7 +808,8 @@
int i = 0;
for (i = 0; i < MTK_DMA_SIZE; i++) {
- dma_addr_t addr = eth->phy_scratch_ring + i * eth->soc->txrx.txd_size;
+ dma_addr_t addr = eth->phy_scratch_ring +
+ i * (dma_addr_t)eth->soc->txrx.txd_size;
hwtx_ring = eth->scratch_ring + i * eth->soc->txrx.txd_size;
@@ -1062,6 +1064,9 @@
agg_cnt = RX_DMA_GET_AGG_CNT(rxd->rxd2);
}
+ if (idx >= MTK_HW_LRO_RING_NUM)
+ return;
+
agg_size = RX_DMA_GET_PLEN0(rxd->rxd2);
hw_lro_agg_size_cnt[idx][agg_size / 5000]++;
@@ -1084,6 +1089,9 @@
flush_reason = RX_DMA_GET_REV(rxd->rxd2);
}
+ if (idx >= MTK_HW_LRO_RING_NUM)
+ return;
+
if ((flush_reason & 0x7) == MTK_HW_LRO_AGG_FLUSH)
hw_lro_agg_flush_cnt[idx]++;
else if ((flush_reason & 0x7) == MTK_HW_LRO_AGE_FLUSH)
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_path.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_path.c
index 04f3f26..c9b1a43 100755
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_path.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_path.c
@@ -204,8 +204,10 @@
regmap_read(eth->ethsys, ETHSYS_SYSCFG0, &val);
val &= SYSCFG0_SGMII_MASK;
- if ((path == MTK_GMAC1_RGMII && val == SYSCFG0_SGMII_GMAC1) ||
- (path == MTK_GMAC2_RGMII && val == SYSCFG0_SGMII_GMAC2))
+ if ((path == MTK_ETH_PATH_GMAC1_RGMII &&
+ val == SYSCFG0_SGMII_GMAC1) ||
+ (path == MTK_ETH_PATH_GMAC2_RGMII &&
+ val == SYSCFG0_SGMII_GMAC2))
val = 0;
else
updated = false;
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 0e34957..2d2797d 100755
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1143,7 +1143,8 @@
if (unlikely(dma_mapping_error(eth->dev, dma_addr)))
return -ENOMEM;
- phy_ring_tail = eth->phy_scratch_ring + soc->txrx.txd_size * (cnt - 1);
+ phy_ring_tail = eth->phy_scratch_ring +
+ (dma_addr_t)soc->txrx.txd_size * (cnt - 1);
for (i = 0; i < cnt; i++) {
struct mtk_tx_dma_v2 *txd;
@@ -1738,7 +1739,7 @@
while (done < budget) {
struct net_device *netdev = NULL;
unsigned int pktlen;
- dma_addr_t dma_addr;
+ dma_addr_t dma_addr = 0;
int mac = 0;
if (eth->hwlro)
@@ -2126,7 +2127,8 @@
&ring->phys, GFP_KERNEL);
else {
ring->dma = eth->scratch_ring + MTK_DMA_SIZE * sz;
- ring->phys = eth->phy_scratch_ring + MTK_DMA_SIZE * sz;
+ ring->phys = eth->phy_scratch_ring +
+ MTK_DMA_SIZE * (dma_addr_t)sz;
}
if (!ring->dma)
@@ -4035,8 +4037,13 @@
"ethernet:fixed link", mac);
}
- if (!of_property_read_string(to_of_node(fixed_node), "label", &label))
- strcpy(phylink_priv->label, label);
+ if (!of_property_read_string(to_of_node(fixed_node),
+ "label", &label)) {
+ if (strlen(label) < 16)
+ strcpy(phylink_priv->label, label);
+ else
+ dev_err(eth->dev, "insufficient space for label!\n");
+ }
phy_np = of_parse_phandle(to_of_node(fixed_node), "phy-handle", 0);
if (phy_np) {
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
index d200b16..872c27e 100755
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
@@ -102,7 +102,7 @@
{
u32 id = mtk_mac2xgmii_id(ss->eth, mac_id);
- if (id < 0 || id >= MTK_MAX_DEVS ||
+ if (id >= MTK_MAX_DEVS ||
!ss->regmap_sgmii[id] || !ss->regmap_pextp[id])
return;
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
index 7d4a3ed..bdd5231 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
@@ -118,7 +118,7 @@
{
u32 id = mtk_mac2xgmii_id(ss->eth, mac_id);
- if (id < 0 || id >= MTK_MAX_DEVS ||
+ if (id >= MTK_MAX_DEVS ||
!ss->regmap_usxgmii[id] || !ss->regmap_pextp[id])
return;
@@ -189,7 +189,7 @@
unsigned int val;
u32 id = mtk_mac2xgmii_id(ss->eth, mac_id);
- if (id < 0 || id >= MTK_MAX_DEVS ||
+ if (id >= MTK_MAX_DEVS ||
!ss->regmap_usxgmii[id] || !ss->regmap_pextp[id])
return;
@@ -292,7 +292,7 @@
struct mtk_eth *eth = ss->eth;
u32 id = mtk_mac2xgmii_id(eth, mac_id);
- if (id < 0 || id >= MTK_MAX_DEVS || !eth->toprgu)
+ if (id >= MTK_MAX_DEVS || !eth->toprgu)
return;
switch (mac_id) {