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 ---