pppoe: RCU locking in get_item_by_addr()
Subsystems (2)
PATCH 1/1 pppoe: RCU locking in get_item_by_addr()
Note : this patch depends on dev_get_by_name_rcu(), not yet comitted.
Thanks
[PATCH net-next-2.6] pppoe: RCU locking in get_item_by_addr()
Use dev_get_by_name_rcu() instead of dev_get_by_name(), to avoid touching device refcount in hotpath.
Signed-off-by Eric Dumazet <[email protected]>
--- drivers/net/pppoe.c | 19 +++++++++---------- 1 files changed, 9 insertions(+), 10 deletions(-)
drivers/net/pppoe.c +9 -10
@@ -250,20 +250,19 @@ static inline struct pppox_sock *get_item_by_addr(struct net *net, {struct net_device *dev;struct pppoe_net *pn; -struct pppox_sock *pppox_sock; +struct pppox_sock *pppox_sock =NULL ;int ifindex; - dev =dev_get_by_name (net, sp->sa_addr.pppoe.dev); -if (!dev) -return NULL ; - - ifindex = dev->ifindex; - pn =net_generic (net, pppoe_net_id); - pppox_sock =get_item (pn, sp->sa_addr.pppoe.sid, +rcu_read_lock (); + dev =dev_get_by_name_rcu (net, sp->sa_addr.pppoe.dev); +if (dev) { + ifindex = dev->ifindex; + pn =net_generic (net, pppoe_net_id); + pppox_sock =get_item (pn, sp->sa_addr.pppoe.sid, sp->sa_addr.pppoe.remote, ifindex); -dev_put (dev); - + } +rcu_read_unlock ();return pppox_sock; }
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Mon, 02 Nov 2009 06:51:22 +0100
Quoted 2 lines
Note : this patch depends on
dev_get_by_name_rcu(), not yet comitted.
Yep, I just tossed that one ine.
Quoted 6 lines
[PATCH net-next-2.6] pppoe: RCU locking in
get_item_by_addr()Use
dev_get_by_name_rcu()instead ofdev_get_by_name(), to avoid touching device refcount in hotpath.Signed-off-by Eric Dumazet <[email protected]>
And now this one too, applied, thanks!