diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2018-03-28 15:28:05 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-03-28 15:28:04 -0700 |
| commit | ac5f95a1a7bfa1e5a9f2bca4966fae5dcf1e24e8 (patch) | |
| tree | e8692d39653c6d1c7848d7188228f226dffc72f0 /drivers | |
| parent | ca7292c0ff45dd966e6af8951a5c4f7ca0bebb2c (diff) | |
| parent | 8d26f80ebc22bdac2372b16f882f4351553ec47e (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.c | 7 |
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; } |
