aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2013-01-15 02:28:35 -0500
committerDavid S. Miller <davem@davemloft.net>2013-01-16 14:40:53 -0500
commit7db11f7596e0e54f982b1897f8233056e5c67a7d (patch)
tree0094a642b1fa575a11321ecf17447d60a6145afd
parent66d3591036097a30d22d8c622e332797bc5070d7 (diff)
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>
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c7
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,
1226 pci_unmap_single(adapter->pdev, rbi->dma_addr, rbi->len, 1226 pci_unmap_single(adapter->pdev, rbi->dma_addr, rbi->len,
1227 PCI_DMA_FROMDEVICE); 1227 PCI_DMA_FROMDEVICE);
1228 1228
1229#ifdef VMXNET3_RSS
1230 if (rcd->rssType != VMXNET3_RCD_RSS_TYPE_NONE &&
1231 (adapter->netdev->features & NETIF_F_RXHASH))
1232 ctx->skb->rxhash = le32_to_cpu(rcd->rssHash);
1233#endif
1229 skb_put(ctx->skb, rcd->len); 1234 skb_put(ctx->skb, rcd->len);
1230 1235
1231 /* Immediate refill */ 1236 /* Immediate refill */
@@ -3022,6 +3027,8 @@ vmxnet3_probe_device(struct pci_dev *pdev,
3022 if (adapter->num_rx_queues > 1 && 3027 if (adapter->num_rx_queues > 1 &&
3023 adapter->intr.type == VMXNET3_IT_MSIX) { 3028 adapter->intr.type == VMXNET3_IT_MSIX) {
3024 adapter->rss = true; 3029 adapter->rss = true;
3030 netdev->hw_features |= NETIF_F_RXHASH;
3031 netdev->features |= NETIF_F_RXHASH;
3025 dev_dbg(&pdev->dev, "RSS is enabled.\n"); 3032 dev_dbg(&pdev->dev, "RSS is enabled.\n");
3026 } else { 3033 } else {
3027 adapter->rss = false; 3034 adapter->rss = false;