72 lines
2.6 KiB
Diff
72 lines
2.6 KiB
Diff
|
|
From 86afd5a0e78eb9b84b158b33d85f711c5f748fd1 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Ricardo Martinez <ricardo.martinez@linux.intel.com>
|
||
|
|
Date: Wed, 18 May 2022 12:55:29 -0700
|
||
|
|
Subject: [PATCH] net: wwan: t7xx: Fix smatch errors
|
||
|
|
|
||
|
|
t7xx_request_irq() error: uninitialized symbol 'ret'.
|
||
|
|
|
||
|
|
t7xx_core_hk_handler() error: potentially dereferencing uninitialized 'event'.
|
||
|
|
If the condition to enter the loop that waits for the handshake event
|
||
|
|
is false on the first iteration then the uninitialized 'event' will be
|
||
|
|
dereferenced, fix this by initializing 'event' to NULL.
|
||
|
|
|
||
|
|
t7xx_port_proxy_recv_skb() warn: variable dereferenced before check 'skb'.
|
||
|
|
No need to check skb at t7xx_port_proxy_recv_skb() since we know it
|
||
|
|
is always called with a valid skb by t7xx_cldma_gpd_rx_from_q().
|
||
|
|
|
||
|
|
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||
|
|
Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
|
||
|
|
Link: https://lore.kernel.org/r/20220518195529.126246-1-ricardo.martinez@linux.intel.com
|
||
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||
|
|
---
|
||
|
|
drivers/net/wwan/t7xx/t7xx_modem_ops.c | 4 ++--
|
||
|
|
drivers/net/wwan/t7xx/t7xx_pci.c | 2 +-
|
||
|
|
drivers/net/wwan/t7xx/t7xx_port_proxy.c | 3 ---
|
||
|
|
3 files changed, 3 insertions(+), 6 deletions(-)
|
||
|
|
|
||
|
|
--- a/drivers/net/wwan/t7xx/t7xx_modem_ops.c
|
||
|
|
+++ b/drivers/net/wwan/t7xx/t7xx_modem_ops.c
|
||
|
|
@@ -458,9 +458,9 @@ static void t7xx_core_hk_handler(struct
|
||
|
|
enum t7xx_fsm_event_state event_id,
|
||
|
|
enum t7xx_fsm_event_state err_detect)
|
||
|
|
{
|
||
|
|
+ struct t7xx_fsm_event *event = NULL, *event_next;
|
||
|
|
struct t7xx_sys_info *core_info = &md->core_md;
|
||
|
|
struct device *dev = &md->t7xx_dev->pdev->dev;
|
||
|
|
- struct t7xx_fsm_event *event, *event_next;
|
||
|
|
unsigned long flags;
|
||
|
|
int ret;
|
||
|
|
|
||
|
|
@@ -493,7 +493,7 @@ static void t7xx_core_hk_handler(struct
|
||
|
|
goto err_free_event;
|
||
|
|
}
|
||
|
|
|
||
|
|
- if (ctl->exp_flg)
|
||
|
|
+ if (!event || ctl->exp_flg)
|
||
|
|
goto err_free_event;
|
||
|
|
|
||
|
|
ret = t7xx_parse_host_rt_data(ctl, core_info, dev, event->data, event->length);
|
||
|
|
--- a/drivers/net/wwan/t7xx/t7xx_pci.c
|
||
|
|
+++ b/drivers/net/wwan/t7xx/t7xx_pci.c
|
||
|
|
@@ -568,7 +568,7 @@ static const struct dev_pm_ops t7xx_pci_
|
||
|
|
static int t7xx_request_irq(struct pci_dev *pdev)
|
||
|
|
{
|
||
|
|
struct t7xx_pci_dev *t7xx_dev;
|
||
|
|
- int ret, i;
|
||
|
|
+ int ret = 0, i;
|
||
|
|
|
||
|
|
t7xx_dev = pci_get_drvdata(pdev);
|
||
|
|
|
||
|
|
--- a/drivers/net/wwan/t7xx/t7xx_port_proxy.c
|
||
|
|
+++ b/drivers/net/wwan/t7xx/t7xx_port_proxy.c
|
||
|
|
@@ -350,9 +350,6 @@ static int t7xx_port_proxy_recv_skb(stru
|
||
|
|
u16 seq_num, channel;
|
||
|
|
int ret;
|
||
|
|
|
||
|
|
- if (!skb)
|
||
|
|
- return -EINVAL;
|
||
|
|
-
|
||
|
|
channel = FIELD_GET(CCCI_H_CHN_FLD, le32_to_cpu(ccci_h->status));
|
||
|
|
if (t7xx_fsm_get_md_state(ctl) == MD_STATE_INVALID) {
|
||
|
|
dev_err_ratelimited(dev, "Packet drop on channel 0x%x, modem not ready\n", channel);
|