On top of Eric's comments. On Thu, Sep 22, 2016 at 10:22:45AM +0800, fgao@xxxxxxxxxx wrote: > diff --git a/net/netfilter/nf_conntrack_seqadj.c b/net/netfilter/nf_conntrack_seqadj.c > index dff0f0c..3bd9c7e 100644 > --- a/net/netfilter/nf_conntrack_seqadj.c > +++ b/net/netfilter/nf_conntrack_seqadj.c > @@ -179,30 +179,34 @@ int nf_ct_seq_adjust(struct sk_buff *skb, > > tcph = (void *)skb->data + protoff; > spin_lock_bh(&ct->lock); > + > if (after(ntohl(tcph->seq), this_way->correction_pos)) > seqoff = this_way->offset_after; > else > seqoff = this_way->offset_before; > > - if (after(ntohl(tcph->ack_seq) - other_way->offset_before, > - other_way->correction_pos)) > - ackoff = other_way->offset_after; > - else > - ackoff = other_way->offset_before; > - > newseq = htonl(ntohl(tcph->seq) + seqoff); > - newack = htonl(ntohl(tcph->ack_seq) - ackoff); > - > inet_proto_csum_replace4(&tcph->check, skb, tcph->seq, newseq, false); > - inet_proto_csum_replace4(&tcph->check, skb, tcph->ack_seq, newack, > - false); > - > - pr_debug("Adjusting sequence number from %u->%u, ack from %u->%u\n", > - ntohl(tcph->seq), ntohl(newseq), ntohl(tcph->ack_seq), > - ntohl(newack)); > > + pr_debug("Adjusting sequence number from %u->%u\n", > + ntohl(tcph->seq), ntohl(newseq)); > tcph->seq = newseq; > - tcph->ack_seq = newack; > + > + if (likely(tcph->ack)) { I'd suggest: if (!tcph->ack) goto out; given gcc sets goto branch as unlikely already, then you place an "out" label... > + if (after(ntohl(tcph->ack_seq) - other_way->offset_before, > + other_way->correction_pos)) > + ackoff = other_way->offset_after; > + else > + ackoff = other_way->offset_before; > + > + newack = htonl(ntohl(tcph->ack_seq) - ackoff); > + inet_proto_csum_replace4(&tcph->check, skb, tcph->ack_seq, > + newack, false); > + > + pr_debug("Adjusting ack number from %u->%u\n", > + ntohl(tcph->ack_seq), ntohl(newack)); > + tcph->ack_seq = newack; > + } > > res = nf_ct_sack_adjust(skb, protoff, tcph, ct, ctinfo); out: <- here > spin_unlock_bh(&ct->lock); This will get you a smaller patch fix. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html