Blame SOURCES/0081-netdrv-bnxt_en-Don-t-proceed-in-.ndo_set_rx_mode-whe.patch

f95c89
From 5de2d4f892cac111195aeddc741e2ef199e554c2 Mon Sep 17 00:00:00 2001
f95c89
From: Jonathan Toppins <jtoppins@redhat.com>
f95c89
Date: Wed, 2 Oct 2019 18:23:36 -0400
f95c89
Subject: [PATCH 81/96] [netdrv] bnxt_en: Don't proceed in .ndo_set_rx_mode()
f95c89
 when device is not in open state
f95c89
f95c89
Message-id: <622e3c11be99362a153efe46b13f7fc1b0182027.1570027456.git.jtoppins@redhat.com>
f95c89
Patchwork-id: 276497
f95c89
O-Subject: [RHEL-8.2 PATCH 74/78] bnxt_en: Don't proceed in .ndo_set_rx_mode() when device is not in open state.
f95c89
Bugzilla: 1724766
f95c89
RH-Acked-by: John Linville <linville@redhat.com>
f95c89
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
f95c89
f95c89
Check the BNXT_STATE_OPEN flag instead of netif_running() in
f95c89
bnxt_set_rx_mode().  If the driver is going through any reset, such
f95c89
as firmware reset or even TX timeout, it may not be ready to set the RX
f95c89
mode and may crash.  The new rx mode settings will be picked up when
f95c89
the device is opened again later.
f95c89
f95c89
Fixes: 230d1f0de754 ("bnxt_en: Handle firmware reset.")
f95c89
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
f95c89
Signed-off-by: David S. Miller <davem@davemloft.net>
f95c89
(cherry picked from commit 268d0895f1b9690755d91b6ced60c9d8d17a7567)
f95c89
Bugzilla: 1724766
f95c89
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=23809532
f95c89
Tested: build, boot, basic ping
f95c89
Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
f95c89
Signed-off-by: Bruno Meneguele <bmeneg@redhat.com>
f95c89
---
f95c89
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +++++---
f95c89
 1 file changed, 5 insertions(+), 3 deletions(-)
f95c89
f95c89
Index: src/drivers/net/ethernet/broadcom/bnxt/bnxt.c
f95c89
===================================================================
f95c89
--- src.orig/drivers/net/ethernet/broadcom/bnxt/bnxt.c	2020-02-06 16:23:21.151463208 +0100
f95c89
+++ src/drivers/net/ethernet/broadcom/bnxt/bnxt.c	2020-02-06 16:23:21.286461969 +0100
f95c89
@@ -9562,14 +9562,16 @@
f95c89
 static void bnxt_set_rx_mode(struct net_device *dev)
f95c89
 {
f95c89
 	struct bnxt *bp = netdev_priv(dev);
f95c89
-	struct bnxt_vnic_info *vnic = &bp->vnic_info[0];
f95c89
-	u32 mask = vnic->rx_mask;
f95c89
+	struct bnxt_vnic_info *vnic;
f95c89
 	bool mc_update = false;
f95c89
 	bool uc_update;
f95c89
+	u32 mask;
f95c89
 
f95c89
-	if (!netif_running(dev))
f95c89
+	if (!test_bit(BNXT_STATE_OPEN, &bp->state))
f95c89
 		return;
f95c89
 
f95c89
+	vnic = &bp->vnic_info[0];
f95c89
+	mask = vnic->rx_mask;
f95c89
 	mask &= ~(CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS |
f95c89
 		  CFA_L2_SET_RX_MASK_REQ_MASK_MCAST |
f95c89
 		  CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST |