diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2011-03-25 04:21:51 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-28 10:35:03 +0400 |
commit | b3cd965739b8677f6e04913aa535fa156b09e73d (patch) | |
tree | 1cb6bb7af7f81fc5ace5ad520408007590336dc5 /drivers/net/jme.c | |
parent | edf947f10074fea27fdb1730524dca59355a1c40 (diff) | |
download | linux-b3cd965739b8677f6e04913aa535fa156b09e73d.tar.xz |
myri10ge: small rx_done refactoring
Avoid theoretical race condition regarding accessing dev->features
NETIF_F_LRO flag, which is illustrated below.
CPU1 CPU2
myri10ge_clean_rx_done(): myri10ge_set_flags():
or
myri10ge_set_rx_csum():
if (dev->features & NETIF_F_LRO)
setup lro
dev->features |= NETIF_F_LRO
or
dev->features &= ~NETIF_F_LRO;
if (dev->features & NETIF_F_LRO)
flush lro
On the way reduce myri10ge_rx_done() number of arguments and calls by
moving mgp->small_bytes check into that function. That reduce code size
from:
text data bss dec hex filename
36644 248 100 36992 9080 drivers/net/myri10ge/myri10ge.o
to:
text data bss dec hex filename
36037 247 100 36384 8e20 drivers/net/myri10ge/myri10ge.o
on my i686 system, what should also make myri10ge_clean_rx_done()
being faster.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/jme.c')
0 files changed, 0 insertions, 0 deletions