]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/ipv4/fib_frontend.c
PM / wakeup: Drop wakeup_source_init(), wakeup_source_prepare()
[linux.git] / net / ipv4 / fib_frontend.c
index 317339cd7f03e60e2111711d075a761962889717..e8bc939b56dd8524ab1176e094cdbc461fac6815 100644 (file)
@@ -388,6 +388,11 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
        fib_combine_itag(itag, &res);
 
        dev_match = fib_info_nh_uses_dev(res.fi, dev);
+       /* This is not common, loopback packets retain skb_dst so normally they
+        * would not even hit this slow path.
+        */
+       dev_match = dev_match || (res.type == RTN_LOCAL &&
+                                 dev == net->loopback_dev);
        if (dev_match) {
                ret = FIB_RES_NHC(res)->nhc_scope >= RT_SCOPE_HOST;
                return ret;