On 6/24/19 6:14 PM, Stephen Suryaputra wrote: > In commit 19e4e768064a8 ("ipv4: Fix raw socket lookup for local > traffic"), the dif argument to __raw_v4_lookup() is coming from the > returned value of inet_iif() but the change was done only for the first > lookup. Subsequent lookups in the while loop still use skb->dev->ifIndex. > > Signed-off-by: Stephen Suryaputra <ssuryae...@gmail.com> > --- > net/ipv4/raw.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c > index 0b8e06ca75d6..40a6abbc9cf6 100644 > --- a/net/ipv4/raw.c > +++ b/net/ipv4/raw.c > @@ -197,7 +197,7 @@ static int raw_v4_input(struct sk_buff *skb, const struct > iphdr *iph, int hash) > } > sk = __raw_v4_lookup(net, sk_next(sk), iph->protocol, > iph->saddr, iph->daddr, > - skb->dev->ifindex, sdif); > + dif, sdif); > } > out: > read_unlock(&raw_v4_hashinfo.lock); >
ugh, missed that in 19e4e768064a8; thanks for the patch. Reviewed-by: David Ahern <dsah...@gmail.com>