]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: Restrict VF poll mode to only single function mode devices
authorShannon Nelson <shannon.nelson@intel.com>
Fri, 1 Apr 2016 10:56:08 +0000 (03:56 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 7 Jul 2016 17:41:01 +0000 (10:41 -0700)
Orabug: 23176970

The VFs can request their queues to be set up into polling mode, rather
than interrupt mode, which works well for supporting things like DPDK,
but this should not be available when working in an multi-function
support device.

Change-ID: Id36792e4e7422db8f2033336507211f68f14ff6f
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 14c5f5d264c3ee28e8ec9fd4dffb29f5d1ea1d02)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

index f2a9c14829ca7f4fdd1da0794dde1b046bc11bf7..8a57a4876be38e77a2c00311d27e01912360aff1 100644 (file)
@@ -1362,8 +1362,16 @@ static int i40e_vc_get_vf_resources_msg(struct i40e_vf *vf, u8 *msg)
                                I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2;
        }
 
-       if (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING)
+       if (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING) {
+               if (pf->flags & I40E_FLAG_MFP_ENABLED) {
+                       dev_err(&pf->pdev->dev,
+                               "VF %d requested polling mode: this feature is supported only when the device is running in single function per port (SFP) mode\n",
+                                vf->vf_id);
+                       ret = I40E_ERR_PARAM;
+                       goto err;
+               }
                vfres->vf_offload_flags |= I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING;
+       }
 
        if (pf->flags & I40E_FLAG_WB_ON_ITR_CAPABLE) {
                if (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR)