netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Michael Chan <michael.chan@broadcom.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 171/258] bnxt_en: Disable MSIX before re-reserving NQs/CMPL rings.
Date: Mon, 28 Jan 2019 10:57:57 -0500	[thread overview]
Message-ID: <20190128155924.51521-171-sashal@kernel.org> (raw)
In-Reply-To: <20190128155924.51521-1-sashal@kernel.org>

From: Michael Chan <michael.chan@broadcom.com>

[ Upstream commit 36d65be9a88052cdfc8524eb591baf0e6c878408 ]

When bringing up a device, the code checks to see if the number of
MSIX has changed.  pci_disable_msix() should be called first before
changing the number of reserved NQs/CMPL rings.  This ensures that
the MSIX vectors associated with the NQs/CMPL rings are still
properly mapped when pci_disable_msix() masks the vectors.

This patch will prevent errors when RDMA support is added for the new
57500 chips.  When the RDMA driver shuts down, the number of NQs is
decreased and we must use the new sequence to prevent MSIX errors.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index e2d92548226a..034f57500f00 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -6073,23 +6073,26 @@ static void bnxt_clear_int_mode(struct bnxt *bp)
 int bnxt_reserve_rings(struct bnxt *bp)
 {
 	int tcs = netdev_get_num_tc(bp->dev);
+	bool reinit_irq = false;
 	int rc;
 
 	if (!bnxt_need_reserve_rings(bp))
 		return 0;
 
-	rc = __bnxt_reserve_rings(bp);
-	if (rc) {
-		netdev_err(bp->dev, "ring reservation failure rc: %d\n", rc);
-		return rc;
-	}
 	if (BNXT_NEW_RM(bp) && (bnxt_get_num_msix(bp) != bp->total_irqs)) {
 		bnxt_ulp_irq_stop(bp);
 		bnxt_clear_int_mode(bp);
-		rc = bnxt_init_int_mode(bp);
+		reinit_irq = true;
+	}
+	rc = __bnxt_reserve_rings(bp);
+	if (reinit_irq) {
+		if (!rc)
+			rc = bnxt_init_int_mode(bp);
 		bnxt_ulp_irq_restart(bp, rc);
-		if (rc)
-			return rc;
+	}
+	if (rc) {
+		netdev_err(bp->dev, "ring reservation/IRQ init failure rc: %d\n", rc);
+		return rc;
 	}
 	if (tcs && (bp->tx_nr_rings_per_tc * tcs != bp->tx_nr_rings)) {
 		netdev_err(bp->dev, "tx ring reservation failure\n");
-- 
2.19.1


  parent reply	other threads:[~2019-01-28 17:14 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190128155924.51521-1-sashal@kernel.org>
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 011/258] wil6210: fix reset flow for Talyn-mb Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 012/258] wil6210: fix memory leak in wil_find_tx_bcast_2 Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 013/258] ath10k: assign 'n_cipher_suites' for WCN3990 Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 014/258] ath9k: dynack: use authentication messages for 'late' ack Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 030/258] ptp: check gettime64 return code in PTP_SYS_OFFSET ioctl Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 033/258] sctp: Fix SKB list traversal in sctp_intl_store_ordered() Sasha Levin
2019-01-28 18:09   ` Marcelo Ricardo Leitner
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 034/258] sctp: Fix SKB list traversal in sctp_intl_store_reasm() Sasha Levin
2019-01-28 17:04   ` Marcelo Ricardo Leitner
2019-01-28 18:04     ` Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 035/258] iwlwifi: fw: do not set sgi bits for HE connection Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 042/258] i40e: prevent overlapping tx_timeout recover Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 045/258] usbnet: smsc95xx: fix rx packet alignment Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 050/258] bpf: libbpf: retry map creation without the name Sasha Levin
2019-01-28 15:55 ` [PATCH AUTOSEL 4.19 051/258] net/mlx5: EQ, Use the right place to store/read IRQ affinity hint Sasha Levin
2019-01-28 15:56 ` [PATCH AUTOSEL 4.19 063/258] ptp: Fix pass zero to ERR_PTR() in ptp_clock_register Sasha Levin
2019-01-28 15:56 ` [PATCH AUTOSEL 4.19 078/258] net: aquantia: return 'err' if set MPI_DEINIT state fails Sasha Levin
2019-01-28 15:56 ` [PATCH AUTOSEL 4.19 090/258] mt76x0: dfs: fix IBI_R11 configuration on non-radar channels Sasha Levin
2019-01-28 15:56 ` [PATCH AUTOSEL 4.19 094/258] nfp: add locking around representor changes Sasha Levin
2019-01-28 16:28   ` Jakub Kicinski
2019-01-28 17:21     ` Sasha Levin
2019-01-28 15:56 ` [PATCH AUTOSEL 4.19 110/258] tipc: fix node keep alive interval calculation Sasha Levin
2019-01-28 15:57 ` [PATCH AUTOSEL 4.19 143/258] mlxsw: spectrum_acl: Limit priority value Sasha Levin
2019-01-28 15:57 ` [PATCH AUTOSEL 4.19 146/258] selftests/bpf: use __bpf_constant_htons in test_prog.c Sasha Levin
2019-01-28 15:57 ` Sasha Levin [this message]
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 182/258] net: hns3: fix incomplete uninitialization of IRQ in the hns3_nic_uninit_vector_data() Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 187/258] mac80211: fix radiotap vendor presence bitmap handling Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 188/258] xfrm6_tunnel: Fix spi check in __xfrm6_tunnel_alloc_spi Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 189/258] mlxsw: spectrum: Properly cleanup LAG uppers when removing port from LAG Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 193/258] cw1200: Fix concurrency use-after-free bugs in cw1200_hw_scan() Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 194/258] net: hns3: add max vector number check for pf Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 196/258] iwlwifi: mvm: fix setting HE ppe FW config Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 198/258] mlx5: update timecounter at least twice per counter overflow Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 207/258] i40e: define proper net_device::neigh_priv_len Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 208/258] ice: Do not enable NAPI on q_vectors that have no rings Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 209/258] igb: Fix an issue that PME is not enabled during runtime suspend Sasha Levin
2019-01-28 15:58 ` [PATCH AUTOSEL 4.19 229/258] niu: fix missing checks of niu_pci_eeprom_read Sasha Levin
2019-01-28 15:59 ` [PATCH AUTOSEL 4.19 240/258] isdn: hisax: hfc_pci: Fix a possible concurrency use-after-free bug in HFCPCI_l1hw() Sasha Levin
2019-01-28 15:59 ` [PATCH AUTOSEL 4.19 242/258] fsl/fman: Use GFP_ATOMIC in {memac,tgec}_add_hash_mac_address() Sasha Levin
2019-01-28 15:59 ` [PATCH AUTOSEL 4.19 248/258] bpf: fix check_map_access smin_value test when pointer contains offset 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=20190128155924.51521-171-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael.chan@broadcom.com \
    --cc=netdev@vger.kernel.org \
    --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;
as well as URLs for NNTP newsgroup(s).