]> git.droids-corp.org - dpdk.git/commitdiff
ixgbe/base: set VF MAC address only when acked by PF
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Sun, 14 Feb 2016 08:54:59 +0000 (16:54 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 16 Mar 2016 16:06:53 +0000 (17:06 +0100)
This patch resolves an issue where VF mac address is zeroed out
in cases where the VF driver is loaded while the PF interface
is down.
The solution is to only set it when we get an ACK from the PF.

Fixes: 6202266e5680 ("ixgbe/base: vf changes")
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
doc/guides/rel_notes/release_16_04.rst
drivers/net/ixgbe/base/ixgbe_vf.c

index b07491aabea1d2c6305abed59cae83dac77c2ee1..6500dc7df5d96d984a5b9a52893fa5d50bc33e58 100644 (file)
@@ -182,6 +182,12 @@ Drivers
   Fixed an incorrect device MTU being set due to ethernet header and
   CRC lengths being added twice.
 
+* **ixgbe: Fixed zeroed VF mac address.**
+
+  Resolved an issue where VF mac address is zeroed out in cases where the VF
+  driver is loaded while the PF interface is down.
+  The solution is to only set it when we get an ACK from the PF.
+
 * **aesni_mb: Fixed wrong return value when creating a device.**
 
   cryptodev_aesni_mb_init() was returning the device id of the device created,
index 50f5e54d6a780cb341ae2f7c006c7a289296a664..dbb51949873f65cb184fd1edaf7321b4d1bde9f3 100644 (file)
@@ -228,7 +228,9 @@ s32 ixgbe_reset_hw_vf(struct ixgbe_hw *hw)
            msgbuf[0] != (IXGBE_VF_RESET | IXGBE_VT_MSGTYPE_NACK))
                return IXGBE_ERR_INVALID_MAC_ADDR;
 
-       memcpy(hw->mac.perm_addr, addr, IXGBE_ETH_LENGTH_OF_ADDRESS);
+       if (msgbuf[0] == (IXGBE_VF_RESET | IXGBE_VT_MSGTYPE_ACK))
+               memcpy(hw->mac.perm_addr, addr, IXGBE_ETH_LENGTH_OF_ADDRESS);
+
        hw->mac.mc_filter_type = msgbuf[IXGBE_VF_MC_TYPE_WORD];
 
        return ret_val;