|
Thomas Bogendoerfer |
50ba5d |
From: Akihiko Odaki <akihiko.odaki@daynix.com>
|
|
Thomas Bogendoerfer |
50ba5d |
Date: Thu, 1 Dec 2022 19:20:03 +0900
|
|
Thomas Bogendoerfer |
50ba5d |
Subject: igbvf: Regard vf reset nack as success
|
|
Thomas Bogendoerfer |
50ba5d |
Patch-mainline: v6.3-rc4
|
|
Thomas Bogendoerfer |
50ba5d |
Git-commit: 02c83791ef969c6a8a150b4927193d0d0e50fb23
|
|
Thomas Bogendoerfer |
50ba5d |
References: jsc#SLE-18379
|
|
Thomas Bogendoerfer |
50ba5d |
|
|
Thomas Bogendoerfer |
50ba5d |
vf reset nack actually represents the reset operation itself is
|
|
Thomas Bogendoerfer |
50ba5d |
performed but no address is assigned. Therefore, e1000_reset_hw_vf
|
|
Thomas Bogendoerfer |
50ba5d |
should fill the "perm_addr" with the zero address and return success on
|
|
Thomas Bogendoerfer |
50ba5d |
such an occasion. This prevents its callers in netdev.c from saying PF
|
|
Thomas Bogendoerfer |
50ba5d |
still resetting, and instead allows them to correctly report that no
|
|
Thomas Bogendoerfer |
50ba5d |
address is assigned.
|
|
Thomas Bogendoerfer |
50ba5d |
|
|
Thomas Bogendoerfer |
50ba5d |
Fixes: 6ddbc4cf1f4d ("igb: Indicate failure on vf reset for empty mac address")
|
|
Thomas Bogendoerfer |
50ba5d |
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
|
|
Thomas Bogendoerfer |
50ba5d |
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
|
|
Thomas Bogendoerfer |
50ba5d |
Tested-by: Marek Szlosek <marek.szlosek@intel.com>
|
|
Thomas Bogendoerfer |
50ba5d |
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
|
|
Thomas Bogendoerfer |
50ba5d |
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
|
|
Thomas Bogendoerfer |
50ba5d |
---
|
|
Thomas Bogendoerfer |
50ba5d |
drivers/net/ethernet/intel/igbvf/vf.c | 13 ++++++++++---
|
|
Thomas Bogendoerfer |
50ba5d |
1 file changed, 10 insertions(+), 3 deletions(-)
|
|
Thomas Bogendoerfer |
50ba5d |
|
|
Thomas Bogendoerfer |
50ba5d |
--- a/drivers/net/ethernet/intel/igbvf/vf.c
|
|
Thomas Bogendoerfer |
50ba5d |
+++ b/drivers/net/ethernet/intel/igbvf/vf.c
|
|
Thomas Bogendoerfer |
50ba5d |
@@ -1,6 +1,8 @@
|
|
Thomas Bogendoerfer |
50ba5d |
// SPDX-License-Identifier: GPL-2.0
|
|
Thomas Bogendoerfer |
50ba5d |
/* Copyright(c) 2009 - 2018 Intel Corporation. */
|
|
Thomas Bogendoerfer |
50ba5d |
|
|
Thomas Bogendoerfer |
50ba5d |
+#include <linux/etherdevice.h>
|
|
Thomas Bogendoerfer |
50ba5d |
+
|
|
Thomas Bogendoerfer |
50ba5d |
#include "vf.h"
|
|
Thomas Bogendoerfer |
50ba5d |
|
|
Thomas Bogendoerfer |
50ba5d |
static s32 e1000_check_for_link_vf(struct e1000_hw *hw);
|
|
Thomas Bogendoerfer |
50ba5d |
@@ -131,11 +133,16 @@ static s32 e1000_reset_hw_vf(struct e100
|
|
Thomas Bogendoerfer |
50ba5d |
/* set our "perm_addr" based on info provided by PF */
|
|
Thomas Bogendoerfer |
50ba5d |
ret_val = mbx->ops.read_posted(hw, msgbuf, 3);
|
|
Thomas Bogendoerfer |
50ba5d |
if (!ret_val) {
|
|
Thomas Bogendoerfer |
50ba5d |
- if (msgbuf[0] == (E1000_VF_RESET |
|
|
Thomas Bogendoerfer |
50ba5d |
- E1000_VT_MSGTYPE_ACK))
|
|
Thomas Bogendoerfer |
50ba5d |
+ switch (msgbuf[0]) {
|
|
Thomas Bogendoerfer |
50ba5d |
+ case E1000_VF_RESET | E1000_VT_MSGTYPE_ACK:
|
|
Thomas Bogendoerfer |
50ba5d |
memcpy(hw->mac.perm_addr, addr, ETH_ALEN);
|
|
Thomas Bogendoerfer |
50ba5d |
- else
|
|
Thomas Bogendoerfer |
50ba5d |
+ break;
|
|
Thomas Bogendoerfer |
50ba5d |
+ case E1000_VF_RESET | E1000_VT_MSGTYPE_NACK:
|
|
Thomas Bogendoerfer |
50ba5d |
+ eth_zero_addr(hw->mac.perm_addr);
|
|
Thomas Bogendoerfer |
50ba5d |
+ break;
|
|
Thomas Bogendoerfer |
50ba5d |
+ default:
|
|
Thomas Bogendoerfer |
50ba5d |
ret_val = -E1000_ERR_MAC_INIT;
|
|
Thomas Bogendoerfer |
50ba5d |
+ }
|
|
Thomas Bogendoerfer |
50ba5d |
}
|
|
Thomas Bogendoerfer |
50ba5d |
}
|
|
Thomas Bogendoerfer |
50ba5d |
|