ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route
[firefly-linux-kernel-4.4.55.git] / net / ipv6 / route.c
index 5af2cca0a46d95beb5367e8ef967c89c63bb2647..dbffc9de184b1760752ccd62d915fb0273eed99b 100644 (file)
@@ -3140,7 +3140,9 @@ static int rt6_fill_node(struct net *net,
        if (iif) {
 #ifdef CONFIG_IPV6_MROUTE
                if (ipv6_addr_is_multicast(&rt->rt6i_dst.addr)) {
-                       int err = ip6mr_get_route(net, skb, rtm, nowait);
+                       int err = ip6mr_get_route(net, skb, rtm, nowait,
+                                                 portid);
+
                        if (err <= 0) {
                                if (!nowait) {
                                        if (err == 0)