pn_dev.c (2d8ad8719591fa803b0d589ed057fa46f49b7155) pn_dev.c (e67f88dd12f610da98ca838822f2c9b4e7c6100e)
1/*
2 * File: pn_dev.c
3 *
4 * Phonet network device
5 *
6 * Copyright (C) 2008 Nokia Corporation.
7 *
8 * Contact: Remi Denis-Courmont <remi.denis-courmont@nokia.com>

--- 412 unchanged lines hidden (view full) ---

421
422 if (!dev)
423 return -ENOENT;
424 synchronize_rcu();
425 dev_put(dev);
426 return 0;
427}
428
1/*
2 * File: pn_dev.c
3 *
4 * Phonet network device
5 *
6 * Copyright (C) 2008 Nokia Corporation.
7 *
8 * Contact: Remi Denis-Courmont <remi.denis-courmont@nokia.com>

--- 412 unchanged lines hidden (view full) ---

421
422 if (!dev)
423 return -ENOENT;
424 synchronize_rcu();
425 dev_put(dev);
426 return 0;
427}
428
429struct net_device *phonet_route_get(struct net *net, u8 daddr)
429struct net_device *phonet_route_get_rcu(struct net *net, u8 daddr)
430{
431 struct phonet_net *pnn = phonet_pernet(net);
432 struct phonet_routes *routes = &pnn->routes;
433 struct net_device *dev;
434
430{
431 struct phonet_net *pnn = phonet_pernet(net);
432 struct phonet_routes *routes = &pnn->routes;
433 struct net_device *dev;
434
435 ASSERT_RTNL(); /* no need to hold the device */
436
437 daddr >>= 2;
435 daddr >>= 2;
438 rcu_read_lock();
439 dev = rcu_dereference(routes->table[daddr]);
436 dev = rcu_dereference(routes->table[daddr]);
440 rcu_read_unlock();
441 return dev;
442}
443
444struct net_device *phonet_route_output(struct net *net, u8 daddr)
445{
446 struct phonet_net *pnn = phonet_pernet(net);
447 struct phonet_routes *routes = &pnn->routes;
448 struct net_device *dev;

--- 12 unchanged lines hidden ---
437 return dev;
438}
439
440struct net_device *phonet_route_output(struct net *net, u8 daddr)
441{
442 struct phonet_net *pnn = phonet_pernet(net);
443 struct phonet_routes *routes = &pnn->routes;
444 struct net_device *dev;

--- 12 unchanged lines hidden ---