Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2306842imc; Tue, 12 Mar 2019 11:03:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqzFAdsNBhBD4G8ih3KG1aXAER7iTAZq6NvxaRVyIjyaVA/3dxiNmWaM37aLrI9MJJQgPUW/ X-Received: by 2002:a63:6e02:: with SMTP id j2mr34977003pgc.229.1552413789065; Tue, 12 Mar 2019 11:03:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552413789; cv=none; d=google.com; s=arc-20160816; b=0i8HvwvsZcTgqwGrVjZdIMojvuJ4BS5iT9Kc4lX0Vt96Dy9cdeirY2QtW/JQShawt7 5xdYcGJMMVO2Ct1jQ+NnvHWeHLGeBCMfJ3vEz7yJhGOXA++ZmSmBCZHdQ1GMIScy3eHy hNg4EQA0FPSO+nLKF3bcOBaszQYbJkGskXe4kXdoHy8qArqSWObPvuY8r3HtaipJc59b VKPwUSxqtZB+k2Kpsray7JHG9x+8BJgR1vQBhB7UVAQ5Zt84MpwZXK622SoWk5bSTFbb 05jyQ17uHoj6MLJeoT3PShTtfbmvQBfxJCiCTVPyJmGZB5gXRC/UmjB8CmQNhK42DHle 1sMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=BTz7014WDJgZS816385mChnSQ9Na6fL9U/UwHzkiu+4=; b=sjatFG+82Kx9HmaKEWZ4GqQ+g7pj4kEXi4zI54wrgutxlzJF10girBmhySnQiW7hlq f8uDWKXloBd5z8LTSaJxBSdo4n5C6O5YT1BdjnLEsDTP2yPCfbxW5poPJM+Xc4Jy3Sgs PyHlVObXyy3TSkAltgpP8pAxXszyurZ4X8LDhJY4yxLOVnCP5bcjbhahGZvglX5UIRG4 mqYZ6fXEAa8+7WKk63/1VlQxYZlPTOAz6diFDlmvzrpB/1TWh6vCkxorleoSpu6LHMmj 50qatf0QFdDDXmQrIKvcFM4GZ4THIiajyZUTTdVP77m+5KhVTan77WQ3+RVLrPxRXDXX TIQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZAAy2e6i; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l94si8815634plb.209.2019.03.12.11.02.53; Tue, 12 Mar 2019 11:03:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZAAy2e6i; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728165AbfCLSAz (ORCPT + 99 others); Tue, 12 Mar 2019 14:00:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:49744 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727861AbfCLRNR (ORCPT ); Tue, 12 Mar 2019 13:13:17 -0400 Received: from localhost (unknown [104.133.8.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2BE892183F; Tue, 12 Mar 2019 17:13:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410796; bh=/T24Lt6Xyax4gZFoasqL3Mw664TMKyKEyy9L57HOtXY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZAAy2e6iSlMWulO1/RmI64BBNs6r6bsqTpmwIe388UYHLLgrcw5so+lJV0RJMSiUF rZS5+IdiNEuNT73mU32LLwQs8q2HWGVD1dsIedFQEiGXztJO+kJ+qaP6E+9F8XkL1i klPIDA0KZaGxbenbZSobrXy6r+A56CSmyol3Usb8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Manish Chopra , Ariel Elior , "David S. Miller" , Sasha Levin Subject: [PATCH 4.20 142/171] qed: Fix EQ full firmware assert. Date: Tue, 12 Mar 2019 10:08:42 -0700 Message-Id: <20190312170359.870344981@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170347.868927101@linuxfoundation.org> References: <20190312170347.868927101@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 660492bcf4a7561b5fdc13be0ae0b0c0a8c120be ] When slowpath messages are sent with high rate, the resulting events can lead to a FW assert in case they are not handled fast enough (Event Queue Full assert). Attempt to send queued slowpath messages only after the newly evacuated entries in the EQ ring are indicated to FW. Signed-off-by: Manish Chopra Signed-off-by: Ariel Elior Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/qlogic/qed/qed_sp.h | 1 + drivers/net/ethernet/qlogic/qed/qed_spq.c | 15 +++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_sp.h b/drivers/net/ethernet/qlogic/qed/qed_sp.h index 3157c0d99441..dae2896e1d8e 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_sp.h +++ b/drivers/net/ethernet/qlogic/qed/qed_sp.h @@ -380,6 +380,7 @@ void qed_consq_setup(struct qed_hwfn *p_hwfn); * @param p_hwfn */ void qed_consq_free(struct qed_hwfn *p_hwfn); +int qed_spq_pend_post(struct qed_hwfn *p_hwfn); /** * @file diff --git a/drivers/net/ethernet/qlogic/qed/qed_spq.c b/drivers/net/ethernet/qlogic/qed/qed_spq.c index 0a9c5bb0fa48..a721b9348b6c 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_spq.c +++ b/drivers/net/ethernet/qlogic/qed/qed_spq.c @@ -402,6 +402,11 @@ int qed_eq_completion(struct qed_hwfn *p_hwfn, void *cookie) qed_eq_prod_update(p_hwfn, qed_chain_get_prod_idx(p_chain)); + /* Attempt to post pending requests */ + spin_lock_bh(&p_hwfn->p_spq->lock); + rc = qed_spq_pend_post(p_hwfn); + spin_unlock_bh(&p_hwfn->p_spq->lock); + return rc; } @@ -744,7 +749,7 @@ static int qed_spq_post_list(struct qed_hwfn *p_hwfn, return 0; } -static int qed_spq_pend_post(struct qed_hwfn *p_hwfn) +int qed_spq_pend_post(struct qed_hwfn *p_hwfn) { struct qed_spq *p_spq = p_hwfn->p_spq; struct qed_spq_entry *p_ent = NULL; @@ -882,7 +887,6 @@ int qed_spq_completion(struct qed_hwfn *p_hwfn, struct qed_spq_entry *p_ent = NULL; struct qed_spq_entry *tmp; struct qed_spq_entry *found = NULL; - int rc; if (!p_hwfn) return -EINVAL; @@ -940,12 +944,7 @@ int qed_spq_completion(struct qed_hwfn *p_hwfn, */ qed_spq_return_entry(p_hwfn, found); - /* Attempt to post pending requests */ - spin_lock_bh(&p_spq->lock); - rc = qed_spq_pend_post(p_hwfn); - spin_unlock_bh(&p_spq->lock); - - return rc; + return 0; } int qed_consq_alloc(struct qed_hwfn *p_hwfn) -- 2.19.1