pn_netlink.c (2d8ad8719591fa803b0d589ed057fa46f49b7155) | pn_netlink.c (e67f88dd12f610da98ca838822f2c9b4e7c6100e) |
---|---|
1/* 2 * File: pn_netlink.c 3 * 4 * Phonet netlink interface 5 * 6 * Copyright (C) 2008 Nokia Corporation. 7 * 8 * Contact: Remi Denis-Courmont <remi.denis-courmont@nokia.com> --- 250 unchanged lines hidden (view full) --- 259 return err; 260} 261 262static int route_dumpit(struct sk_buff *skb, struct netlink_callback *cb) 263{ 264 struct net *net = sock_net(skb->sk); 265 u8 addr, addr_idx = 0, addr_start_idx = cb->args[0]; 266 | 1/* 2 * File: pn_netlink.c 3 * 4 * Phonet netlink interface 5 * 6 * Copyright (C) 2008 Nokia Corporation. 7 * 8 * Contact: Remi Denis-Courmont <remi.denis-courmont@nokia.com> --- 250 unchanged lines hidden (view full) --- 259 return err; 260} 261 262static int route_dumpit(struct sk_buff *skb, struct netlink_callback *cb) 263{ 264 struct net *net = sock_net(skb->sk); 265 u8 addr, addr_idx = 0, addr_start_idx = cb->args[0]; 266 |
267 rcu_read_lock(); |
|
267 for (addr = 0; addr < 64; addr++) { 268 struct net_device *dev; 269 | 268 for (addr = 0; addr < 64; addr++) { 269 struct net_device *dev; 270 |
270 dev = phonet_route_get(net, addr << 2); | 271 dev = phonet_route_get_rcu(net, addr << 2); |
271 if (!dev) 272 continue; 273 274 if (addr_idx++ < addr_start_idx) 275 continue; 276 if (fill_route(skb, dev, addr << 2, NETLINK_CB(cb->skb).pid, 277 cb->nlh->nlmsg_seq, RTM_NEWROUTE)) 278 goto out; 279 } 280 281out: | 272 if (!dev) 273 continue; 274 275 if (addr_idx++ < addr_start_idx) 276 continue; 277 if (fill_route(skb, dev, addr << 2, NETLINK_CB(cb->skb).pid, 278 cb->nlh->nlmsg_seq, RTM_NEWROUTE)) 279 goto out; 280 } 281 282out: |
283 rcu_read_unlock(); |
|
282 cb->args[0] = addr_idx; 283 cb->args[1] = 0; 284 285 return skb->len; 286} 287 288int __init phonet_netlink_register(void) 289{ --- 12 unchanged lines hidden --- | 284 cb->args[0] = addr_idx; 285 cb->args[1] = 0; 286 287 return skb->len; 288} 289 290int __init phonet_netlink_register(void) 291{ --- 12 unchanged lines hidden --- |