i40evf: use capabilities flags properly
authorMitch Williams <mitch.a.williams@intel.com>
Fri, 28 Aug 2015 21:55:57 +0000 (17:55 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 8 Oct 2015 23:27:14 +0000 (16:27 -0700)
Use the capabilities passed to us by the PF driver to control VF driver
behavior. In the process, clean up the VLAN add/remove code so it's not
a horrible morass of ifdefs.

Change-ID: I1050eaf12b658a26fea6813047c9964163c70a73
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index 664fde68b537ba2190875cffefc7a96d12cd2683..1f999305c406b1373ea2e0616ac029055c5723df 100644 (file)
@@ -730,6 +730,8 @@ static int i40evf_vlan_rx_add_vid(struct net_device *netdev,
 {
        struct i40evf_adapter *adapter = netdev_priv(netdev);
 
+       if (!VLAN_ALLOWED(adapter))
+               return -EIO;
        if (i40evf_add_vlan(adapter, vid) == NULL)
                return -ENOMEM;
        return 0;
@@ -745,8 +747,11 @@ static int i40evf_vlan_rx_kill_vid(struct net_device *netdev,
 {
        struct i40evf_adapter *adapter = netdev_priv(netdev);
 
-       i40evf_del_vlan(adapter, vid);
-       return 0;
+       if (VLAN_ALLOWED(adapter)) {
+               i40evf_del_vlan(adapter, vid);
+               return 0;
+       }
+       return -EIO;
 }
 
 /**