diff options
author | Phil Oester <kernel@linuxace.com> | 2005-07-12 11:57:52 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-07-12 11:57:52 -0700 |
commit | 84531c24f27b02daa8e54e2bb6dc74a730fdf0a5 (patch) | |
tree | 756825122b40af8ea2db132e8c9033d9ab3785e5 /net/packet | |
parent | 6a2e9b738cb5c929df73b6acabdd8f9a4e9a0416 (diff) | |
download | lwn-84531c24f27b02daa8e54e2bb6dc74a730fdf0a5.tar.gz lwn-84531c24f27b02daa8e54e2bb6dc74a730fdf0a5.zip |
[NETFILTER]: Revert nf_reset change
Revert the nf_reset change that caused so much trouble, drop conntrack
references manually before packets are queued to packet sockets.
Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet')
-rw-r--r-- | net/packet/af_packet.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 0269616e75a1..c9d5980aa4de 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -274,6 +274,9 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct dst_release(skb->dst); skb->dst = NULL; + /* drop conntrack reference */ + nf_reset(skb); + spkt = (struct sockaddr_pkt*)skb->cb; skb_push(skb, skb->data-skb->mac.raw); @@ -517,6 +520,9 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, struct packe dst_release(skb->dst); skb->dst = NULL; + /* drop conntrack reference */ + nf_reset(skb); + spin_lock(&sk->sk_receive_queue.lock); po->stats.tp_packets++; __skb_queue_tail(&sk->sk_receive_queue, skb); |