]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: write HENA for VFs
authorMitch Williams <mitch.a.williams@intel.com>
Mon, 16 May 2016 17:26:33 +0000 (10:26 -0700)
committerDhaval Giani <dhaval.giani@oracle.com>
Wed, 8 Mar 2017 00:30:22 +0000 (19:30 -0500)
Orabug: 24568124

Now that VF RSS is configured by the PF driver, it needs to set the RSS
Hash Enable registers by default. Without this, no packets will be
hashed and they'll all end up on queue 0.

Change-ID: I38e425f40ddb81e3b19a951cfbb939fa5b1123f1
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>
(cherry picked from commit bb36071721699c531e19ea7c3e7eebd605e8b61d)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

index 1fcafcfa8f14fe5a6fe0e693715bb06cdc7023aa..6fcbf764f32bc942866ba10740ccfbc0df92f6f9 100644 (file)
@@ -665,6 +665,8 @@ static int i40e_alloc_vsi_res(struct i40e_vf *vf, enum i40e_vsi_type type)
                goto error_alloc_vsi_res;
        }
        if (type == I40E_VSI_SRIOV) {
+               u64 hena = i40e_pf_get_default_rss_hena(pf);
+
                vf->lan_vsi_idx = vsi->idx;
                vf->lan_vsi_id = vsi->id;
                /* If the port VLAN has been configured and then the
@@ -687,6 +689,10 @@ static int i40e_alloc_vsi_res(struct i40e_vf *vf, enum i40e_vsi_type type)
                                        vf->default_lan_addr.addr, vf->vf_id);
                }
                spin_unlock_bh(&vsi->mac_filter_list_lock);
+               i40e_write_rx_ctl(&pf->hw, I40E_VFQF_HENA1(0, vf->vf_id),
+                                 (u32)hena);
+               i40e_write_rx_ctl(&pf->hw, I40E_VFQF_HENA1(1, vf->vf_id),
+                                 (u32)(hena >> 32));
        }
 
        /* program mac filter */