diff options
author | Stephen Hemminger <stephen@networkplumber.org> | 2013-01-15 07:28:35 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-01-16 14:40:53 -0500 |
commit | 7db11f7596e0e54f982b1897f8233056e5c67a7d (patch) | |
tree | 0094a642b1fa575a11321ecf17447d60a6145afd /drivers/net/vmxnet3/vmxnet3_drv.c | |
parent | 66d3591036097a30d22d8c622e332797bc5070d7 (diff) | |
download | blackbird-op-linux-7db11f7596e0e54f982b1897f8233056e5c67a7d.tar.gz blackbird-op-linux-7db11f7596e0e54f982b1897f8233056e5c67a7d.zip |
vmxnet3: better RSS support
The VMXNET3 device provides RSS hash value for received packets,
but it is not being used.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vmxnet3/vmxnet3_drv.c')
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 9777dc62c536..b1c90f8ccd3d 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c @@ -1226,6 +1226,11 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq, pci_unmap_single(adapter->pdev, rbi->dma_addr, rbi->len, PCI_DMA_FROMDEVICE); +#ifdef VMXNET3_RSS + if (rcd->rssType != VMXNET3_RCD_RSS_TYPE_NONE && + (adapter->netdev->features & NETIF_F_RXHASH)) + ctx->skb->rxhash = le32_to_cpu(rcd->rssHash); +#endif skb_put(ctx->skb, rcd->len); /* Immediate refill */ @@ -3022,6 +3027,8 @@ vmxnet3_probe_device(struct pci_dev *pdev, if (adapter->num_rx_queues > 1 && adapter->intr.type == VMXNET3_IT_MSIX) { adapter->rss = true; + netdev->hw_features |= NETIF_F_RXHASH; + netdev->features |= NETIF_F_RXHASH; dev_dbg(&pdev->dev, "RSS is enabled.\n"); } else { adapter->rss = false; |