cxgb3 - remove duplicate tests in lro
authorDivy Le Ray <divy@chelsio.com>
Fri, 5 Sep 2008 05:34:13 +0000 (22:34 -0700)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 24 Sep 2008 22:58:56 +0000 (18:58 -0400)
The generic lro code checks TCP flags/options.
Remove duplicate tests done in the driver.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/cxgb3/sge.c

index 6990c0ddc85405df69299e98f2b84eacb3358260..89efd04be4e0d340bfae3a68f144281ae68cafaf 100644 (file)
@@ -1937,38 +1937,6 @@ static inline int lro_frame_ok(const struct cpl_rx_pkt *p)
                eh->h_proto == htons(ETH_P_IP) && ih->ihl == (sizeof(*ih) >> 2);
 }
 
-#define TCP_FLAG_MASK (TCP_FLAG_CWR | TCP_FLAG_ECE | TCP_FLAG_URG |\
-                       TCP_FLAG_ACK | TCP_FLAG_PSH | TCP_FLAG_RST |\
-                                      TCP_FLAG_SYN | TCP_FLAG_FIN)
-#define TSTAMP_WORD ((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) |\
-                     (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)
-
-/**
- *     lro_segment_ok - check if a TCP segment is eligible for LRO
- *     @tcph: the TCP header of the packet
- *
- *     Returns true if a TCP packet is eligible for LRO.  This requires that
- *     the packet have only the ACK flag set and no TCP options besides
- *     time stamps.
- */
-static inline int lro_segment_ok(const struct tcphdr *tcph)
-{
-       int optlen;
-
-       if (unlikely((tcp_flag_word(tcph) & TCP_FLAG_MASK) != TCP_FLAG_ACK))
-               return 0;
-
-       optlen = (tcph->doff << 2) - sizeof(*tcph);
-       if (optlen) {
-               const u32 *opt = (const u32 *)(tcph + 1);
-
-               if (optlen != TCPOLEN_TSTAMP_ALIGNED ||
-                   *opt != htonl(TSTAMP_WORD) || !opt[2])
-                       return 0;
-       }
-       return 1;
-}
-
 static int t3_get_lro_header(void **eh,  void **iph, void **tcph,
                             u64 *hdr_flags, void *priv)
 {
@@ -1981,9 +1949,6 @@ static int t3_get_lro_header(void **eh,  void **iph, void **tcph,
        *iph = (struct iphdr *)((struct ethhdr *)*eh + 1);
        *tcph = (struct tcphdr *)((struct iphdr *)*iph + 1);
 
-        if (!lro_segment_ok(*tcph))
-               return -1;
-
        *hdr_flags = LRO_IPV4 | LRO_TCP;
        return 0;
 }