Skip to content

Commit

Permalink
jme: Tuning rxsum function
Browse files Browse the repository at this point in the history
1. Use more efficient way to determine flag status.
2. Hardware dose not mark fragment bit against IPv6 packets,
   print TCP/UDP checksum warning message for IPv4 packets
   only.

Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Guo-Fu Tseng authored and David S. Miller committed Jul 6, 2009
1 parent d1dfa1d commit ce7d70a
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions drivers/net/jme.c
Original file line number Diff line number Diff line change
Expand Up @@ -880,27 +880,27 @@ jme_rxsum_ok(struct jme_adapter *jme, u16 flags)
if (!(flags & (RXWBFLAG_TCPON | RXWBFLAG_UDPON | RXWBFLAG_IPV4)))
return false;

if (unlikely(!(flags & RXWBFLAG_MF) &&
(flags & RXWBFLAG_TCPON) && !(flags & RXWBFLAG_TCPCS))) {
msg_rx_err(jme, "TCP Checksum error.\n");
goto out_sumerr;
if (unlikely((flags & (RXWBFLAG_MF | RXWBFLAG_TCPON | RXWBFLAG_TCPCS))
== RXWBFLAG_TCPON)) {
if (flags & RXWBFLAG_IPV4)
msg_rx_err(jme, "TCP Checksum error\n");
return false;
}

if (unlikely(!(flags & RXWBFLAG_MF) &&
(flags & RXWBFLAG_UDPON) && !(flags & RXWBFLAG_UDPCS))) {
msg_rx_err(jme, "UDP Checksum error.\n");
goto out_sumerr;
if (unlikely((flags & (RXWBFLAG_MF | RXWBFLAG_UDPON | RXWBFLAG_UDPCS))
== RXWBFLAG_UDPON)) {
if (flags & RXWBFLAG_IPV4)
msg_rx_err(jme, "UDP Checksum error.\n");
return false;
}

if (unlikely((flags & RXWBFLAG_IPV4) && !(flags & RXWBFLAG_IPCS))) {
if (unlikely((flags & (RXWBFLAG_IPV4 | RXWBFLAG_IPCS))
== RXWBFLAG_IPV4)) {
msg_rx_err(jme, "IPv4 Checksum error.\n");
goto out_sumerr;
return false;
}

return true;

out_sumerr:
return false;
}

static void
Expand Down

0 comments on commit ce7d70a

Please sign in to comment.