[][openwrt][mt7988][tops][fix coverity issue]
[Description]
Fix TOPS coverity issue
[Release-log]
N/A
Change-Id: Ic4a5aaf30e66e7985ef3d13e7448a626ee8ba124
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7922988
diff --git a/package-21.02/kernel/tops/src/firmware.c b/package-21.02/kernel/tops/src/firmware.c
index 20a7db1..646212f 100644
--- a/package-21.02/kernel/tops/src/firmware.c
+++ b/package-21.02/kernel/tops/src/firmware.c
@@ -377,7 +377,7 @@
u32 boot_addr = TOPS_DEFAULT_BOOT_ADDR;
u32 i;
- for (i = TOPS_PART_TYPE_IRAM0; i < __TOPS_PART_TYPE_MAX; i++) {
+ for (i = TOPS_PART_TYPE_IRAM0; i < TOPS_PART_TYPE_METADATA; i++) {
hdr = part->hdr[i];
if (le16_to_cpu(hdr->flags) & FW_PART_BOOT_OVERRIDE) {
@@ -565,19 +565,21 @@
u32 meta_len;
u32 ofs = 0;
u32 nattr;
- u32 i;
+ int i;
if (!tfw || !part)
return -EINVAL;
- if (FW_ROLE(tfw) > __TOPS_ROLE_TYPE_MAX)
+ if (FW_ROLE(tfw) >= __TOPS_ROLE_TYPE_MAX)
return -EINVAL;
phdr = part->hdr[TOPS_PART_TYPE_METADATA];
payload = part->payload[TOPS_PART_TYPE_METADATA];
- meta_len = le32_to_cpu(phdr->size);
+ if (!phdr || !payload)
+ return 0;
- if (!phdr || !payload || !meta_len)
+ meta_len = le32_to_cpu(phdr->size);
+ if (!meta_len)
return 0;
fw_info = &npu.fw_info[FW_ROLE(tfw)];
diff --git a/package-21.02/kernel/tops/src/mcu.c b/package-21.02/kernel/tops/src/mcu.c
index 94f465c..30cb032 100644
--- a/package-21.02/kernel/tops/src/mcu.c
+++ b/package-21.02/kernel/tops/src/mcu.c
@@ -1387,7 +1387,7 @@
return -ENOMEM;
npu.pd_links = devm_kmalloc_array(dev, npu.pd_num,
- sizeof(struct device_link),
+ sizeof(*npu.pd_links),
GFP_KERNEL);
if (!npu.pd_links)
return -ENOMEM;
diff --git a/package-21.02/kernel/tops/src/tnl_offload.c b/package-21.02/kernel/tops/src/tnl_offload.c
index c989054..aa19f75 100644
--- a/package-21.02/kernel/tops/src/tnl_offload.c
+++ b/package-21.02/kernel/tops/src/tnl_offload.c
@@ -123,9 +123,7 @@
static inline bool skb_tops_valid(struct sk_buff *skb)
{
- return (skb
- && skb_hnat_tops(skb) >= 0
- && skb_hnat_tops(skb) <= __TOPS_ENTRY_MAX);
+ return (skb && skb_hnat_tops(skb) <= __TOPS_ENTRY_MAX);
}
static inline struct tops_tnl_type *skb_to_tnl_type(struct sk_buff *skb)
diff --git a/package-21.02/kernel/tops/src/trm-fs.c b/package-21.02/kernel/tops/src/trm-fs.c
index f2bd9bf..3728ee1 100644
--- a/package-21.02/kernel/tops/src/trm-fs.c
+++ b/package-21.02/kernel/tops/src/trm-fs.c
@@ -36,10 +36,8 @@
if (likely(dst))
return dst;
- if (rty++ < 3)
- msleep(100);
- else
- break;
+ rty++;
+ msleep(100);
}
return ERR_PTR(-ENOMEM);
diff --git a/package-21.02/kernel/tops/src/trm.c b/package-21.02/kernel/tops/src/trm.c
index 11991cf..5fdc909 100644
--- a/package-21.02/kernel/tops/src/trm.c
+++ b/package-21.02/kernel/tops/src/trm.c
@@ -120,13 +120,11 @@
for (i = 0; i < __TRM_HARDWARE_MAX; i++) {
trm_hw_cfg = trm_hw_configs[i];
- if (unlikely(!trm_hw_cfg))
+ if (unlikely(!trm_hw_cfg || !trm_hw_cfg->trm_cfgs))
continue;
for (j = 0; j < trm_hw_cfg->cfg_len; j++) {
trm_cfg = &trm_hw_cfg->trm_cfgs[j];
- if (unlikely(!trm_cfg))
- continue;
if (!strncmp(trm_cfg->name, name, strlen(name))) {
mutex_lock(&trm_lock);
@@ -178,7 +176,7 @@
total -= RLY_DUMP_SUBBUF_DATA_MAX;
} else {
frag_len = total;
- total -= total;
+ total = 0;
trm_hdr.last_frag = true;
}