X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fnetvsc%2Fhn_ethdev.c;h=159116f7f691d981b25e74b880c972ae735bd417;hb=89214fe915b8afb118105a784740b6910e54ade5;hp=6589355090d7dd94fd3ace9bc0b5242e3ce9f132;hpb=8b945a7f7dcb688fada7ec8650b8a1f45252ea73;p=dpdk.git diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 6589355090..159116f7f6 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -42,7 +42,8 @@ DEV_TX_OFFLOAD_VLAN_INSERT) #define HN_RX_OFFLOAD_CAPS (DEV_RX_OFFLOAD_CHECKSUM | \ - DEV_RX_OFFLOAD_VLAN_STRIP) + DEV_RX_OFFLOAD_VLAN_STRIP | \ + DEV_RX_OFFLOAD_RSS_HASH) int hn_logtype_init; int hn_logtype_driver; @@ -291,6 +292,13 @@ static int hn_rss_reta_update(struct rte_eth_dev *dev, hv->rss_ind[i] = reta_conf[idx].reta[shift]; } + err = hn_rndis_conf_rss(hv, NDIS_RSS_FLAG_DISABLE); + if (err) { + PMD_DRV_LOG(NOTICE, + "rss disable failed"); + return err; + } + err = hn_rndis_conf_rss(hv, 0); if (err) { PMD_DRV_LOG(NOTICE, @@ -532,7 +540,8 @@ static int hn_dev_configure(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); - dev_conf->rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH; + if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) + dev_conf->rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH; unsupported = txmode->offloads & ~HN_TX_OFFLOAD_CAPS; if (unsupported) { @@ -577,6 +586,13 @@ static int hn_dev_configure(struct rte_eth_dev *dev) return err; } + err = hn_rndis_conf_rss(hv, NDIS_RSS_FLAG_DISABLE); + if (err) { + PMD_DRV_LOG(NOTICE, + "rss disable failed"); + return err; + } + err = hn_rndis_conf_rss(hv, 0); if (err) { PMD_DRV_LOG(NOTICE,