--- zzzz-none-000/linux-2.6.32.61/net/ipv6/ip6_input.c 2013-06-10 09:43:48.000000000 +0000 +++ ar10-7272-687/linux-2.6.32.61/net/ipv6/ip6_input.c 2011-10-27 15:47:13.000000000 +0000 @@ -50,6 +50,13 @@ { if (skb_dst(skb) == NULL) ip6_route_input(skb); +#ifdef CONFIG_MAPPING + struct dst_entry *rt = skb_dst(skb); + if ((rt == NULL) || (rt->mapping)) { /* To free the old sk_buff */ + kfree_skb(skb); + return NET_RX_DROP; + } +#endif return dst_input(skb); } @@ -80,6 +87,10 @@ memset(IP6CB(skb), 0, sizeof(struct inet6_skb_parm)); +#ifdef CONFIG_AVM_PA + AVM_PKT_INFO(skb)->ptype_pid_handle = AVM_PA_PTYPE_DEVINFO(pt)->pid_handle; +#endif + /* * Store incoming device index. When the packet will * be queued, we cannot refer to skb->dev anymore.