]> Pileus Git - ~andy/linux/blobdiff - net/phonet/pn_netlink.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
[~andy/linux] / net / phonet / pn_netlink.c
index 58b3b1f991ed2db16d78d2d192eefb4b4d3ad80e..438accb7a5a8ada36dea9e769fcd3fce69c50aaf 100644 (file)
@@ -264,10 +264,11 @@ static int route_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
        struct net *net = sock_net(skb->sk);
        u8 addr, addr_idx = 0, addr_start_idx = cb->args[0];
 
+       rcu_read_lock();
        for (addr = 0; addr < 64; addr++) {
                struct net_device *dev;
 
-               dev = phonet_route_get(net, addr << 2);
+               dev = phonet_route_get_rcu(net, addr << 2);
                if (!dev)
                        continue;
 
@@ -279,6 +280,7 @@ static int route_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
        }
 
 out:
+       rcu_read_unlock();
        cb->args[0] = addr_idx;
        cb->args[1] = 0;