ixgbe: Fix bogus error message
authorGreg Rose <gregory.v.rose@intel.com>
Sat, 21 Apr 2012 00:54:28 +0000 (00:54 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 10 May 2012 05:40:29 +0000 (22:40 -0700)
If the VF sends a MACVLAN request with index of zero then it is not
actually trying to add a filter.  Check the index value and only
indicate that operation is not allowed when the VF is actually trying
to add a filter.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c

index b64f1fc8a397b7f341d9b40eb2b508c45d094599..2d971d18696e569d59b522ad4304f57ce52c408a 100644 (file)
@@ -640,14 +640,14 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
                }
                break;
        case IXGBE_VF_SET_MACVLAN:
-               if (adapter->vfinfo[vf].pf_set_mac) {
+               index = (msgbuf[0] & IXGBE_VT_MSGINFO_MASK) >>
+                       IXGBE_VT_MSGINFO_SHIFT;
+               if (adapter->vfinfo[vf].pf_set_mac && index > 0) {
                        e_warn(drv, "VF %d requested MACVLAN filter but is "
                                    "administratively denied\n", vf);
                        retval = -1;
                        break;
                }
-               index = (msgbuf[0] & IXGBE_VT_MSGINFO_MASK) >>
-                       IXGBE_VT_MSGINFO_SHIFT;
                /*
                 * If the VF is allowed to set MAC filters then turn off
                 * anti-spoofing to avoid false positives.  An index