summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-03-28 15:28:05 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-28 15:28:04 -0700
commitac5f95a1a7bfa1e5a9f2bca4966fae5dcf1e24e8 (patch)
treee8692d39653c6d1c7848d7188228f226dffc72f0 /drivers
parentca7292c0ff45dd966e6af8951a5c4f7ca0bebb2c (diff)
parent8d26f80ebc22bdac2372b16f882f4351553ec47e (diff)
Merge "soc: qcom: ipc_router_smd_xprt: Set pointer to NULL after free"
Diffstat (limited to 'drivers')
-rw-r--r--drivers/soc/qcom/ipc_router_smd_xprt.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/soc/qcom/ipc_router_smd_xprt.c b/drivers/soc/qcom/ipc_router_smd_xprt.c
index a94e81556027..6e17f0b9cc31 100644
--- a/drivers/soc/qcom/ipc_router_smd_xprt.c
+++ b/drivers/soc/qcom/ipc_router_smd_xprt.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2011-2015, 2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -294,8 +294,10 @@ static void smd_xprt_read_data(struct work_struct *work)
spin_lock_irqsave(&smd_xprtp->ss_reset_lock, flags);
if (smd_xprtp->ss_reset) {
spin_unlock_irqrestore(&smd_xprtp->ss_reset_lock, flags);
- if (smd_xprtp->in_pkt)
+ if (smd_xprtp->in_pkt) {
release_pkt(smd_xprtp->in_pkt);
+ smd_xprtp->in_pkt = NULL;
+ }
smd_xprtp->is_partial_in_pkt = 0;
IPC_RTR_ERR("%s: %s channel reset\n",
__func__, smd_xprtp->xprt.name);
@@ -348,6 +350,7 @@ static void smd_xprt_read_data(struct work_struct *work)
__func__, smd_xprtp->xprt.name);
kfree_skb(ipc_rtr_pkt);
release_pkt(smd_xprtp->in_pkt);
+ smd_xprtp->in_pkt = NULL;
smd_xprtp->is_partial_in_pkt = 0;
return;
}