public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Sagiv Ozeri <sagiv.ozeri@cavium.com>,
	Denis Bolotin <denis.bolotin@cavium.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 24/27] qed: Fix potential memory corruption
Date: Wed, 14 Nov 2018 17:25:13 -0500	[thread overview]
Message-ID: <20181114222520.99926-24-sashal@kernel.org> (raw)
In-Reply-To: <20181114222520.99926-1-sashal@kernel.org>

From: Sagiv Ozeri <sagiv.ozeri@cavium.com>

[ Upstream commit fa5c448d98f0df660bfcad3dd5facc027ef84cd3 ]

A stuck ramrod should be deleted from the completion_pending list,
otherwise it will be added again in the future and corrupt the list.

Return error value to inform that ramrod is stuck and should be deleted.

Signed-off-by: Sagiv Ozeri <sagiv.ozeri@cavium.com>
Signed-off-by: Denis Bolotin <denis.bolotin@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/qlogic/qed/qed_spq.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qed/qed_spq.c b/drivers/net/ethernet/qlogic/qed/qed_spq.c
index 0313e9c46979..467755b6dd0b 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_spq.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_spq.c
@@ -144,6 +144,7 @@ static int qed_spq_block(struct qed_hwfn *p_hwfn,
 
 	DP_INFO(p_hwfn, "Ramrod is stuck, requesting MCP drain\n");
 	rc = qed_mcp_drain(p_hwfn, p_ptt);
+	qed_ptt_release(p_hwfn, p_ptt);
 	if (rc) {
 		DP_NOTICE(p_hwfn, "MCP drain failed\n");
 		goto err;
@@ -152,18 +153,15 @@ static int qed_spq_block(struct qed_hwfn *p_hwfn,
 	/* Retry after drain */
 	rc = __qed_spq_block(p_hwfn, p_ent, p_fw_ret, true);
 	if (!rc)
-		goto out;
+		return 0;
 
 	comp_done = (struct qed_spq_comp_done *)p_ent->comp_cb.cookie;
-	if (comp_done->done == 1)
+	if (comp_done->done == 1) {
 		if (p_fw_ret)
 			*p_fw_ret = comp_done->fw_return_code;
-out:
-	qed_ptt_release(p_hwfn, p_ptt);
-	return 0;
-
+		return 0;
+	}
 err:
-	qed_ptt_release(p_hwfn, p_ptt);
 	DP_NOTICE(p_hwfn,
 		  "Ramrod is stuck [CID %08x cmd %02x protocol %02x echo %04x]\n",
 		  le32_to_cpu(p_ent->elem.hdr.cid),
-- 
2.17.1


  parent reply	other threads:[~2018-11-14 22:31 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-14 22:24 [PATCH AUTOSEL 4.14 01/27] s390/vdso: add missing FORCE to build targets Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 02/27] netfilter: ipset: list:set: Decrease refcount synchronously on deletion and replace Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 03/27] netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 04/27] s390/mm: Fix ERROR: "__node_distance" undefined! Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 05/27] usbnet: smsc95xx: disable carrier check while suspending Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 06/27] net: dsa: microchip: initialize mutex before use Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 07/27] net: systemport: Protect stop from timeout Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 08/27] netfilter: ipset: Correct rcu_dereference() call in ip_set_put_comment() Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 09/27] netfilter: xt_IDLETIMER: add sysfs filename checking routine Sasha Levin
2018-11-14 22:24 ` [PATCH AUTOSEL 4.14 10/27] s390/qeth: fix HiperSockets sniffer Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 11/27] mlxsw: spectrum: Fix IP2ME CPU policer configuration Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 12/27] hwmon: (ibmpowernv) Remove bogus __init annotations Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 13/27] Revert "drm/exynos/decon5433: implement frame counter" Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 14/27] clk: fixed-factor: fix of_node_get-put imbalance Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 15/27] lib/raid6: Fix arm64 test build Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 16/27] s390/perf: Change CPUM_CF return code in event init function Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 17/27] i2c: omap: Enable for ARCH_K3 Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 18/27] sched/core: Take the hotplug lock in sched_init_smp() Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 19/27] perf tools: Fix undefined symbol scnprintf in libperf-jvmti.so Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 20/27] i40e: restore NETIF_F_GSO_IPXIP[46] to netdev features Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 21/27] ibmvnic: fix accelerated VLAN handling Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 22/27] qed: Fix memory/entry leak in qed_init_sp_request() Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 23/27] qed: Fix blocking/unlimited SPQ entries leak Sasha Levin
2018-11-14 22:25 ` Sasha Levin [this message]
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 25/27] net: stmmac: Fix RX packet size > 8191 Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 26/27] net: smsc95xx: Fix MTU range Sasha Levin
2018-11-14 22:25 ` [PATCH AUTOSEL 4.14 27/27] ext4: missing !bh check in ext4_xattr_inode_write() Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181114222520.99926-24-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=davem@davemloft.net \
    --cc=denis.bolotin@cavium.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sagiv.ozeri@cavium.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox