diff options
Diffstat (limited to 'drivers/net/ethernet/cisco/enic/enic_res.c')
| -rw-r--r-- | drivers/net/ethernet/cisco/enic/enic_res.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cisco/enic/enic_res.c b/drivers/net/ethernet/cisco/enic/enic_res.c index 9c96911fb2c8..40b20817ddd5 100644 --- a/drivers/net/ethernet/cisco/enic/enic_res.c +++ b/drivers/net/ethernet/cisco/enic/enic_res.c | |||
| @@ -149,6 +149,7 @@ int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type, | |||
| 149 | u8 rss_hash_bits, u8 rss_base_cpu, u8 rss_enable, u8 tso_ipid_split_en, | 149 | u8 rss_hash_bits, u8 rss_base_cpu, u8 rss_enable, u8 tso_ipid_split_en, |
| 150 | u8 ig_vlan_strip_en) | 150 | u8 ig_vlan_strip_en) |
| 151 | { | 151 | { |
| 152 | enum vnic_devcmd_cmd cmd = CMD_NIC_CFG; | ||
| 152 | u64 a0, a1; | 153 | u64 a0, a1; |
| 153 | u32 nic_cfg; | 154 | u32 nic_cfg; |
| 154 | int wait = 1000; | 155 | int wait = 1000; |
| @@ -160,7 +161,11 @@ int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type, | |||
| 160 | a0 = nic_cfg; | 161 | a0 = nic_cfg; |
| 161 | a1 = 0; | 162 | a1 = 0; |
| 162 | 163 | ||
| 163 | return vnic_dev_cmd(enic->vdev, CMD_NIC_CFG, &a0, &a1, wait); | 164 | if (rss_hash_type & (NIC_CFG_RSS_HASH_TYPE_UDP_IPV4 | |
| 165 | NIC_CFG_RSS_HASH_TYPE_UDP_IPV6)) | ||
| 166 | cmd = CMD_NIC_CFG_CHK; | ||
| 167 | |||
| 168 | return vnic_dev_cmd(enic->vdev, cmd, &a0, &a1, wait); | ||
| 164 | } | 169 | } |
| 165 | 170 | ||
| 166 | int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len) | 171 | int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len) |
