i40e/i40evf: pass QOS handle to VF
authorMitch Williams <mitch.a.williams@intel.com>
Fri, 28 Aug 2015 21:55:58 +0000 (17:55 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 8 Oct 2015 23:30:13 +0000 (16:30 -0700)
The VF really doesn't care about the QOS handle but it will in the
future. Since the VF only uses TC0, send it that handle. On the VF
side, save the handle and use it to populate the QOS params when we call
into the client interface.

Change-ID: I76f41b070baeaa09b19383e9168bc677837e0761
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/i40e/i40e_virtchnl_pf.c
drivers/net/ethernet/intel/i40evf/i40evf.h
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index 678623f..ee747dc 100644 (file)
@@ -1210,8 +1210,10 @@ static int i40e_vc_get_vf_resources_msg(struct i40e_vf *vf, u8 *msg)
        if (vf->lan_vsi_idx) {
                vfres->vsi_res[i].vsi_id = vf->lan_vsi_id;
                vfres->vsi_res[i].vsi_type = I40E_VSI_SRIOV;
-               vfres->vsi_res[i].num_queue_pairs =
-                   pf->vsi[vf->lan_vsi_idx]->alloc_queue_pairs;
+               vfres->vsi_res[i].num_queue_pairs = vsi->alloc_queue_pairs;
+               /* VFs only use TC 0 */
+               vfres->vsi_res[i].qset_handle
+                                         = le16_to_cpu(vsi->info.qs_handle[0]);
                ether_addr_copy(vfres->vsi_res[i].default_mac_addr,
                                vf->default_lan_addr.addr);
                i++;
index 27dc3fe..e7a223e 100644 (file)
@@ -66,6 +66,7 @@ struct i40e_vsi {
         */
        u16 rx_itr_setting;
        u16 tx_itr_setting;
+       u16 qs_handle;
 };
 
 /* How many Rx Buffers do we bundle into one write to the hardware ? */
index 1f99930..c00e495 100644 (file)
@@ -2115,6 +2115,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
        adapter->vsi.tx_itr_setting = (I40E_ITR_DYNAMIC |
                                       ITR_REG_TO_USEC(I40E_ITR_TX_DEF));
        adapter->vsi.netdev = adapter->netdev;
+       adapter->vsi.qs_handle = adapter->vsi_res->qset_handle;
        return 0;
 }