summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandeep Singh <quic_sandsing@quicinc.com>2023-02-23 12:33:59 +0530
committerMadan Koyyalamudi <quic_mkoyyala@quicinc.com>2023-02-28 18:35:39 -0800
commitecd2be21ed2ec2818afe705170d3dbce5ef4b192 (patch)
tree9f985dcfce11f1d2a88785b2c25d6d8ee8c3e67e
parent01cb81be76d76fe466529a82b35b2f2ace196e5a (diff)
downloadwlan-platform-ecd2be21ed2ec2818afe705170d3dbce5ef4b192.tar.gz
icnss2: Add null check for priv variable
Add null check for priv variable to avoid null pointer dereference. Change-Id: Ib1746d564f27f8096f66761946d37a2a3faf2e57 CRs-Fixed: 3378034
-rw-r--r--icnss2/main.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/icnss2/main.c b/icnss2/main.c
index 566a132..4a037ae 100644
--- a/icnss2/main.c
+++ b/icnss2/main.c
@@ -152,6 +152,9 @@ static ssize_t icnss_sysfs_store(struct kobject *kobj,
{
struct icnss_priv *priv = icnss_get_plat_priv();
+ if (!priv)
+ return count;
+
icnss_pr_dbg("Received shutdown indication");
atomic_set(&priv->is_shutdown, true);
@@ -466,7 +469,7 @@ static int icnss_send_smp2p(struct icnss_priv *priv,
unsigned int value = 0;
int ret;
- if (IS_ERR(priv->smp2p_info[smp2p_entry].smem_state))
+ if (!priv || IS_ERR(priv->smp2p_info[smp2p_entry].smem_state))
return -EINVAL;
/* No Need to check FW_DOWN for ICNSS_RESET_MSG */
@@ -547,11 +550,11 @@ static irqreturn_t fw_crash_indication_handler(int irq, void *ctx)
icnss_pr_err("Received early crash indication from FW\n");
- if (priv->wpss_self_recovery_enabled)
- mod_timer(&priv->wpss_ssr_timer,
- jiffies + msecs_to_jiffies(ICNSS_WPSS_SSR_TIMEOUT));
-
if (priv) {
+ if (priv->wpss_self_recovery_enabled)
+ mod_timer(&priv->wpss_ssr_timer,
+ jiffies + msecs_to_jiffies(ICNSS_WPSS_SSR_TIMEOUT));
+
set_bit(ICNSS_FW_DOWN, &priv->state);
icnss_ignore_fw_timeout(true);
@@ -2426,6 +2429,9 @@ static void icnss_pdr_notifier_cb(int state, char *service_path, void *priv_cb)
struct icnss_uevent_fw_down_data fw_down_data = {0};
enum icnss_pdr_cause_index cause = ICNSS_ROOT_PD_CRASH;
+ if (!priv)
+ return;
+
icnss_pr_dbg("PD service notification: 0x%lx state: 0x%lx\n",
state, priv->state);