Stephen Rothwell wrote: > Hi Dave, > > Today's linux-next merge of the net tree got a conflict in > net/netfilter/nf_conntrack_proto_tcp.c between commit > 6b69fe0c73c0f5a8dacf8f889db3cc9adee53649 ("netfilter: nf_conntrack_tcp: > fix endless loop") from the net-current tree and commit > 51091764f26ec36c02e35166f083193a30f426fc ("netfilter: nf_conntrack: add > nf_ct_kill()") from the net tree. > > Not a simple fixup. I did what I thought was right, please check. > > The conflict was in tcp_packet() and looked like this: > > if (((ct->proto.tcp.seen[dir].flags > | ct->proto.tcp.seen[!dir].flags) > & IP_CT_TCP_FLAG_CLOSE_INIT) > || (ct->proto.tcp.last_dir == dir > && ct->proto.tcp.last_index == TCP_RST_SET)) { > /* Attempt to reopen a closed/aborted connection. > * Delete this connection and look up again. */ > write_unlock_bh(&tcp_lock); > <<<<<<< HEAD:net/netfilter/nf_conntrack_proto_tcp.c > /* Only repeat if we can actually remove the timer. > * Destruction may already be in progress in process > * context and we must give it a chance to terminate. > */ > if (del_timer(&ct->timeout)) { > ct->timeout.function((unsigned long)ct); > return -NF_REPEAT; > } > return -NF_DROP; > ======= > nf_ct_kill(ct); > return -NF_REPEAT; >>>>>>>> net/master:net/netfilter/nf_conntrack_proto_tcp.c > } > /* Fall through */ > case TCP_CONNTRACK_IGNORE: > > I used the HEAD version. You may need to return a value from nf_ct_kill() > indicating if the timer was deleted to fix this properly. Indeed. The attached against net-next does this.