Commit 86afd5a0 authored by Ricardo Martinez's avatar Ricardo Martinez Committed by Jakub Kicinski

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: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarRicardo Martinez <ricardo.martinez@linux.intel.com>
Link: https://lore.kernel.org/r/20220518195529.126246-1-ricardo.martinez@linux.intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent cb89580e
...@@ -458,9 +458,9 @@ static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_fsm_ctl *ctl ...@@ -458,9 +458,9 @@ static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_fsm_ctl *ctl
enum t7xx_fsm_event_state event_id, enum t7xx_fsm_event_state event_id,
enum t7xx_fsm_event_state err_detect) 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 t7xx_sys_info *core_info = &md->core_md;
struct device *dev = &md->t7xx_dev->pdev->dev; struct device *dev = &md->t7xx_dev->pdev->dev;
struct t7xx_fsm_event *event, *event_next;
unsigned long flags; unsigned long flags;
int ret; int ret;
...@@ -493,7 +493,7 @@ static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_fsm_ctl *ctl ...@@ -493,7 +493,7 @@ static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_fsm_ctl *ctl
goto err_free_event; goto err_free_event;
} }
if (ctl->exp_flg) if (!event || ctl->exp_flg)
goto err_free_event; goto err_free_event;
ret = t7xx_parse_host_rt_data(ctl, core_info, dev, event->data, event->length); ret = t7xx_parse_host_rt_data(ctl, core_info, dev, event->data, event->length);
......
...@@ -568,7 +568,7 @@ static const struct dev_pm_ops t7xx_pci_pm_ops = { ...@@ -568,7 +568,7 @@ static const struct dev_pm_ops t7xx_pci_pm_ops = {
static int t7xx_request_irq(struct pci_dev *pdev) static int t7xx_request_irq(struct pci_dev *pdev)
{ {
struct t7xx_pci_dev *t7xx_dev; struct t7xx_pci_dev *t7xx_dev;
int ret, i; int ret = 0, i;
t7xx_dev = pci_get_drvdata(pdev); t7xx_dev = pci_get_drvdata(pdev);
......
...@@ -350,9 +350,6 @@ static int t7xx_port_proxy_recv_skb(struct cldma_queue *queue, struct sk_buff *s ...@@ -350,9 +350,6 @@ static int t7xx_port_proxy_recv_skb(struct cldma_queue *queue, struct sk_buff *s
u16 seq_num, channel; u16 seq_num, channel;
int ret; int ret;
if (!skb)
return -EINVAL;
channel = FIELD_GET(CCCI_H_CHN_FLD, le32_to_cpu(ccci_h->status)); channel = FIELD_GET(CCCI_H_CHN_FLD, le32_to_cpu(ccci_h->status));
if (t7xx_fsm_get_md_state(ctl) == MD_STATE_INVALID) { 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); dev_err_ratelimited(dev, "Packet drop on channel 0x%x, modem not ready\n", channel);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment