Messages in this thread | | | Date | Wed, 24 Sep 2008 15:46:20 -0500 | From | Corey Minyard <> | Subject | Re: [PATCH 1/1] Use RCU for the UDP hash lock |
| |
Stephen Hemminger wrote: > >> >> static inline void udp_lib_unhash(struct sock *sk) >> { >> - write_lock_bh(&udp_hash_lock); >> - if (sk_del_node_init(sk)) { >> + spin_lock_bh(&udp_hash_wlock); >> + if (sk_del_node_rcu(sk)) { >> inet_sk(sk)->num = 0; >> sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); >> } >> - write_unlock_bh(&udp_hash_lock); >> + spin_unlock_bh(&udp_hash_wlock); >> + synchronize_sched(); >> > > Could this be synchronize_rcu? You are using rcu_read_lock() protected sections. > I meant to comment on that. I wasn't sure which to use, so I chose the more conservative approach. synchronize_rcu() might be appropriate.
-corey
| |