projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f0e6160
)
sfc: Enable RX scatter for flows steered by RFS
author
Ben Hutchings
<
[email protected]
>
Mon, 22 Jul 2013 23:17:25 +0000
(
00:17
+0100)
committer
David S. Miller
<
[email protected]
>
Tue, 23 Jul 2013 01:03:50 +0000
(18:03 -0700)
Received packets are only scattered if this is enabled in both the
matching filter and the receiving queue. This was not being done for
filters inserted for RFS, so any packet requiring more than a single
descriptor was dropped.
Signed-off-by: Ben Hutchings <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
drivers/net/ethernet/sfc/filter.c
patch
|
blob
|
history
diff --git
a/drivers/net/ethernet/sfc/filter.c
b/drivers/net/ethernet/sfc/filter.c
index b74a60ab9ac79913111a4f79d4a5a8ca1c723862..2a469b27a5061641a07a8502ecf63736953070a2 100644
(file)
--- a/
drivers/net/ethernet/sfc/filter.c
+++ b/
drivers/net/ethernet/sfc/filter.c
@@
-1209,7
+1209,9
@@
int efx_filter_rfs(struct net_device *net_dev, const struct sk_buff *skb,
EFX_BUG_ON_PARANOID(skb_headlen(skb) < nhoff + 4 * ip->ihl + 4);
ports = (const __be16 *)(skb->data + nhoff + 4 * ip->ihl);
- efx_filter_init_rx(&spec, EFX_FILTER_PRI_HINT, 0, rxq_index);
+ efx_filter_init_rx(&spec, EFX_FILTER_PRI_HINT,
+ efx->rx_scatter ? EFX_FILTER_FLAG_RX_SCATTER : 0,
+ rxq_index);
rc = efx_filter_set_ipv4_full(&spec, ip->protocol,
ip->daddr, ports[1], ip->saddr, ports[0]);
if (rc)