--- zzzz-none-000/linux-2.6.28.10/include/net/inet_hashtables.h 2009-05-02 18:54:43.000000000 +0000 +++ puma5-6360-529/linux-2.6.28.10/include/net/inet_hashtables.h 2011-12-21 09:12:23.000000000 +0000 @@ -383,10 +383,18 @@ if (unlikely(sk = skb_steal_sock(skb))) return sk; - else - return __inet_lookup(dev_net(skb->dst->dev), hashinfo, - iph->saddr, sport, - iph->daddr, dport, inet_iif(skb)); +#ifdef CONFIG_AVM_PA + sk = __inet_lookup(dev_net(skb->dst->dev), hashinfo, + iph->saddr, sport, + iph->daddr, dport, inet_iif(skb)); + if (sk) + avm_pa_add_local_session(skb, sk); + return sk; +#else + return __inet_lookup(dev_net(skb->dst->dev), hashinfo, + iph->saddr, sport, + iph->daddr, dport, inet_iif(skb)); +#endif } extern int __inet_hash_connect(struct inet_timewait_death_row *death_row,