diff --git a/[refs] b/[refs] index 4b77e45f0123..38dfbde94cca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a9c56cb34e65000d1f0a4b7553399bfcf7c5a52 +refs/heads/master: f96ef988cc603487c03a6de07807b06cbe641829 diff --git a/trunk/net/ipv4/route.c b/trunk/net/ipv4/route.c index 550781a17b34..d35bbf0cf404 100644 --- a/trunk/net/ipv4/route.c +++ b/trunk/net/ipv4/route.c @@ -737,10 +737,15 @@ static void ip_do_redirect(struct dst_entry *dst, struct sock *sk, struct sk_buf { struct rtable *rt; struct flowi4 fl4; + const struct iphdr *iph = (const struct iphdr *) skb->data; + int oif = skb->dev->ifindex; + u8 tos = RT_TOS(iph->tos); + u8 prot = iph->protocol; + u32 mark = skb->mark; rt = (struct rtable *) dst; - ip_rt_build_flow_key(&fl4, sk, skb); + __build_flow_key(&fl4, sk, iph, oif, tos, prot, mark, 0); __ip_do_redirect(rt, skb, &fl4, true); }