ixgbevf: Fix errors in retrieving RETA and RSS from PF
authorTony Nguyen <anthony.l.nguyen@intel.com>
Thu, 13 Apr 2017 14:26:06 +0000 (07:26 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sun, 30 Apr 2017 03:01:04 +0000 (20:01 -0700)
Mailbox support for getting RETA and RSS is available for only 82599 and
x540; a previous patch reversed the logic and these adapters were
returning not supported.

Also, the NACK check in ixgbevf_get_rss_key_locked() was checking for the
command IXGBE_VF_GET_RETA instead of IXGBE_VF_GET_RSS_KEY.

This patch corrects both issues by correcting the logic and checking for
the right command.

Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbevf/vf.c

index 8a5db9d7219d14d9845215e6fa7e76036350d5db..b6d0c01eab10d1bfade260b3f4cc34de1e0622d9 100644 (file)
@@ -333,7 +333,7 @@ int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues)
        switch (hw->api_version) {
        case ixgbe_mbox_api_13:
        case ixgbe_mbox_api_12:
-               if (hw->mac.type >= ixgbe_mac_X550_vf)
+               if (hw->mac.type < ixgbe_mac_X550_vf)
                        break;
        default:
                return -EOPNOTSUPP;
@@ -399,7 +399,7 @@ int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key)
        switch (hw->api_version) {
        case ixgbe_mbox_api_13:
        case ixgbe_mbox_api_12:
-               if (hw->mac.type >= ixgbe_mac_X550_vf)
+               if (hw->mac.type < ixgbe_mac_X550_vf)
                        break;
        default:
                return -EOPNOTSUPP;
@@ -419,7 +419,7 @@ int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key)
        msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
 
        /* If the operation has been refused by a PF return -EPERM */
-       if (msgbuf[0] == (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_NACK))
+       if (msgbuf[0] == (IXGBE_VF_GET_RSS_KEY | IXGBE_VT_MSGTYPE_NACK))
                return -EPERM;
 
        /* If we didn't get an ACK there must have been