]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/ipv4/route.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux.git] / net / ipv4 / route.c
index f51823dc998bbe2c19ceac4e471e82b0e4b1eaf3..4b7c231c1aef66f2eaf287f9820d001f64650f8e 100644 (file)
@@ -2471,7 +2471,7 @@ static int rt_fill_info(struct net *net,  __be32 dst, __be32 src, u32 table_id,
        r->rtm_dst_len  = 32;
        r->rtm_src_len  = 0;
        r->rtm_tos      = fl4->flowi4_tos;
-       r->rtm_table    = table_id;
+       r->rtm_table    = table_id < 256 ? table_id : RT_TABLE_COMPAT;
        if (nla_put_u32(skb, RTA_TABLE, table_id))
                goto nla_put_failure;
        r->rtm_type     = rt->rt_type;
@@ -2631,9 +2631,7 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh)
                skb->protocol   = htons(ETH_P_IP);
                skb->dev        = dev;
                skb->mark       = mark;
-               local_bh_disable();
                err = ip_route_input(skb, dst, src, rtm->rtm_tos, dev);
-               local_bh_enable();
 
                rt = skb_rtable(skb);
                if (err == 0 && rt->dst.error)