Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4556321pxv; Tue, 20 Jul 2021 06:35:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZ3vfoch+/bdWF2CYgj914vYSZU+/S2JMEqZCOKxbNfDL47JxZEhmG0TgMBXL4fGJ74F38 X-Received: by 2002:a05:6402:1242:: with SMTP id l2mr40424501edw.97.1626788157505; Tue, 20 Jul 2021 06:35:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626788157; cv=none; d=google.com; s=arc-20160816; b=qkvbYPrMd1VJ5803TGNBkaeEg5CfJm7ByTrLg2X9dLpLjWFenJCzJLegcSTDFvab9Q ZHDtNDce0nreYUIGsH6qnuYl5tVVOn3ZnCNRTcd187SBprR3DWa2oijRzmNXl+06L27J DUi0K66YpqP5CdOT+nHzzzDbPOi1hXRj+whWRx0WP7toaie5hdSAxgv1d+CEHm3RBr55 ungr3xJXtf5FKpQCIPHvpixKKPV421VWdHEIMVG0y/8dfnXu0H9EIZyM8w1w1bWvgzNi XwX3nR8yC+y+iOT6AkN/dquTF/v47bVjBWZc2QTYtZAdW8HTfz3S6MM96lxN9Ez8UOzg +BdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=VpvUxqCm28CVQ1Jm1IqgyaIpBPzGKPQpKQGlIjIv2kM=; b=mOH7HKtxU2SELR98bZxL+TAi7oZjx+1ZP6W4HAy47lhxreBTo/G4dkZbOy11tc+Pfu /gAOcJVzSDwO5Ot5kTjzXq80lA5z5I9Rs2ZbFYu6LLDmKUyZ1ETwFxZhRMmeHEqQFsjM ko7cb/0l7YkhHN8eVDvwNt2zajqTXMjkPEnG15w/IdbZdbAmhckpEYhC+NCLEIEAH/Xg CGmqJjY9VqocidvQCBq8PdMaOz1lymqKd6LJfhKmkR+tvivJcwS288xpmGvLL6rpilPh uEVDs75nOiQV9UHcInltexmIVrszit+LvC+YeVsQp3TbpqLH36Ywn8kFlwGvKnii19kB zkUQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x22si24813796edd.466.2021.07.20.06.35.33; Tue, 20 Jul 2021 06:35:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238735AbhGTMwU (ORCPT + 99 others); Tue, 20 Jul 2021 08:52:20 -0400 Received: from foss.arm.com ([217.140.110.172]:58536 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239043AbhGTMrD (ORCPT ); Tue, 20 Jul 2021 08:47:03 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6A8041FB; Tue, 20 Jul 2021 06:26:57 -0700 (PDT) Received: from entos-ampere-02.shanghai.arm.com (entos-ampere-02.shanghai.arm.com [10.169.214.103]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 862083F694; Tue, 20 Jul 2021 06:26:54 -0700 (PDT) From: Jia He To: Ariel Elior , GR-everest-linux-l2@marvell.com, "David S. Miller" , Jakub Kicinski Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, nd@arm.com, Jia He , Prabhakar Kushwaha Subject: [PATCH net v2] Revert "qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()" Date: Tue, 20 Jul 2021 21:26:55 +0800 Message-Id: <20210720132655.4704-1-justin.he@arm.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This reverts commit 6206b7981a36476f4695d661ae139f7db36a802d. That patch added additional spin_{un}lock_bh(), which was harmless but pointless. The orginal code path has guaranteed the pair of spin_{un}lock_bh(). We'd better revert it before we find the exact root cause of the bug_on mentioned in that patch. Fixes: 6206b7981a36 ("qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()") Cc: David S. Miller Cc: Prabhakar Kushwaha Signed-off-by: Jia He --- v2: correct the hash value of reverted commit, and add the fixes tag drivers/net/ethernet/qlogic/qed/qed_mcp.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c index 79d879a5d663..4387292c37e2 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c @@ -474,18 +474,14 @@ _qed_mcp_cmd_and_union(struct qed_hwfn *p_hwfn, spin_lock_bh(&p_hwfn->mcp_info->cmd_lock); - if (!qed_mcp_has_pending_cmd(p_hwfn)) { - spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); + if (!qed_mcp_has_pending_cmd(p_hwfn)) break; - } rc = qed_mcp_update_pending_cmd(p_hwfn, p_ptt); - if (!rc) { - spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); + if (!rc) break; - } else if (rc != -EAGAIN) { + else if (rc != -EAGAIN) goto err; - } spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); @@ -502,8 +498,6 @@ _qed_mcp_cmd_and_union(struct qed_hwfn *p_hwfn, return -EAGAIN; } - spin_lock_bh(&p_hwfn->mcp_info->cmd_lock); - /* Send the mailbox command */ qed_mcp_reread_offsets(p_hwfn, p_ptt); seq_num = ++p_hwfn->mcp_info->drv_mb_seq; @@ -530,18 +524,14 @@ _qed_mcp_cmd_and_union(struct qed_hwfn *p_hwfn, spin_lock_bh(&p_hwfn->mcp_info->cmd_lock); - if (p_cmd_elem->b_is_completed) { - spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); + if (p_cmd_elem->b_is_completed) break; - } rc = qed_mcp_update_pending_cmd(p_hwfn, p_ptt); - if (!rc) { - spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); + if (!rc) break; - } else if (rc != -EAGAIN) { + else if (rc != -EAGAIN) goto err; - } spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); } while (++cnt < max_retries); @@ -564,7 +554,6 @@ _qed_mcp_cmd_and_union(struct qed_hwfn *p_hwfn, return -EAGAIN; } - spin_lock_bh(&p_hwfn->mcp_info->cmd_lock); qed_mcp_cmd_del_elem(p_hwfn, p_cmd_elem); spin_unlock_bh(&p_hwfn->mcp_info->cmd_lock); -- 2.17.1