Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 203363
b: refs/heads/master
c: fdc8541
h: refs/heads/master
i:
  203361: 5419389
  203359: fe77f83
v: v3
  • Loading branch information
Michael Chan authored and David S. Miller committed Jul 4, 2010
1 parent ceb062e commit 356b066
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3d5f3a7bbd06065b06c7f65f948437ded40255ec
refs/heads/master: fdc8541d693a04ba3d6c335dace19b8362ac4e83
15 changes: 14 additions & 1 deletion trunk/drivers/net/bnx2.c
Original file line number Diff line number Diff line change
Expand Up @@ -3219,6 +3219,10 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
L2_FHDR_ERRORS_UDP_XSUM)) == 0))
skb->ip_summed = CHECKSUM_UNNECESSARY;
}
if ((bp->dev->features & NETIF_F_RXHASH) &&
((status & L2_FHDR_STATUS_USE_RXHASH) ==
L2_FHDR_STATUS_USE_RXHASH))
skb->rxhash = rx_hdr->l2_fhdr_hash;

skb_record_rx_queue(skb, bnapi - &bp->bnx2_napi[0]);

Expand Down Expand Up @@ -7558,6 +7562,12 @@ bnx2_set_tx_csum(struct net_device *dev, u32 data)
return (ethtool_op_set_tx_csum(dev, data));
}

static int
bnx2_set_flags(struct net_device *dev, u32 data)
{
return ethtool_op_set_flags(dev, data, ETH_FLAG_RXHASH);
}

static const struct ethtool_ops bnx2_ethtool_ops = {
.get_settings = bnx2_get_settings,
.set_settings = bnx2_set_settings,
Expand Down Expand Up @@ -7587,6 +7597,8 @@ static const struct ethtool_ops bnx2_ethtool_ops = {
.phys_id = bnx2_phys_id,
.get_ethtool_stats = bnx2_get_ethtool_stats,
.get_sset_count = bnx2_get_sset_count,
.set_flags = bnx2_set_flags,
.get_flags = ethtool_op_get_flags,
};

/* Called with rtnl_lock */
Expand Down Expand Up @@ -8333,7 +8345,8 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
memcpy(dev->dev_addr, bp->mac_addr, 6);
memcpy(dev->perm_addr, bp->mac_addr, 6);

dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_GRO;
dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_GRO |
NETIF_F_RXHASH;
vlan_features_add(dev, NETIF_F_IP_CSUM | NETIF_F_SG);
if (CHIP_NUM(bp) == CHIP_NUM_5709) {
dev->features |= NETIF_F_IPV6_CSUM;
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/net/bnx2.h
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,9 @@ struct l2_fhdr {
#define L2_FHDR_ERRORS_TCP_XSUM (1<<28)
#define L2_FHDR_ERRORS_UDP_XSUM (1<<31)

#define L2_FHDR_STATUS_USE_RXHASH \
(L2_FHDR_STATUS_TCP_SEGMENT | L2_FHDR_STATUS_RSS_HASH)

u32 l2_fhdr_hash;
#if defined(__BIG_ENDIAN)
u16 l2_fhdr_pkt_len;
Expand Down

0 comments on commit 356b066

Please sign in to comment.