Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4384744pxv; Tue, 20 Jul 2021 02:31:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxS0oyl4vxSQ2mCK4dAk3x/ceVvbFCjquFrIzDaGpYfHrt9plQIBx9ED+Ycd5Topw0aztML X-Received: by 2002:aa7:dd8d:: with SMTP id g13mr39654305edv.336.1626773466181; Tue, 20 Jul 2021 02:31:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626773466; cv=none; d=google.com; s=arc-20160816; b=0w9rMnY0E/YHT2LqjIv3dJenMz1EAuPpI1arV4cWk1dFqK0SGwDuYyb0WewUvS3jvj WJu8BbyuTfaFVfMclPNV1/Hyg5A6QZulctMLqC+odt7KyVPu9tLlHbZZNW0DUCMrbZ5A j40wjBbQsA6VAoEKueFoc508snyUAAxInAhDgs3gJsJJUpsoMqIYApgJuMmD7M7K78nm AZQu55SGDVWwqChoAXstXtDd4IlXXVBfpFG9litZdfvBH+I1DOwuVJd95058dAHXQk8M 9aGUqIZPNHOsOstePC5OTmgTFGxNAHX+JU35brbn8rdAKGfly9CXgVn4a3GurmRg0iZN qijQ== 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=3Ov/WHfFTAw//1h9wWwM4oHCtVJTgeYCEkyraRwrR5g=; b=OZV+tX0iEVQ8ZizuGaULDQfBGEbSnCmkME6GNx99U6aQZNfrSWfvePMUWvRQDQxPCQ 4xU71dPxZYLVDV80Xu5gmmxZ6FKNbwbUYrDtGPhOBRhddIa9nAW9AU3cAh8AEptX9XOI W0ydv9c6iVh8B3E4SsKPYQLxytSXk577U4rj/VwJnnfN5BsC/nAPR1qPfowPQa5NMNLv 3+uOa6kZiJLM50F9V/A7lSdES0VyyO6YcburkOz866EBfsPG6b2HtUC5+JfJ8BZYsfVk lt14jwUBrt+MLW75rj5xMad8ejoLrVRhCcKbHzSC/Y30vqniVAt0dVzRxD3AM3B0KE7i X1hA== 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 d11si8546812edq.136.2021.07.20.02.30.42; Tue, 20 Jul 2021 02:31:06 -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 S234449AbhGTIsB (ORCPT + 99 others); Tue, 20 Jul 2021 04:48:01 -0400 Received: from foss.arm.com ([217.140.110.172]:54448 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235243AbhGTIrI (ORCPT ); Tue, 20 Jul 2021 04:47:08 -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 EA6626D; Tue, 20 Jul 2021 02:27:41 -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 1AC333F73D; Tue, 20 Jul 2021 02:27:38 -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] Revert "qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()" Date: Tue, 20 Jul 2021 17:27:39 +0800 Message-Id: <20210720092739.3539-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 2d2f5ded858a4f4659fc63e01dd55605598a8f05. 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. Cc: David S. Miller Cc: Prabhakar Kushwaha Signed-off-by: Jia He --- 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