diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-10-17 12:42:32 +0100 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-18 17:01:27 -0400 |
commit | bc0a7438605c5e0cafdb32a3caf46254e146b116 (patch) | |
tree | 7331f97459c13f1f4bb18d8d2db6abd724ad6f7f /lib/parser.c | |
parent | ad4ebed00fbf570411edbf6eb6c391e16b71df25 (diff) |
[PATCH] rcu in bpqether driver.
From Suzanne Wood <suzannew@cs.pdx.edu>:
Clarify RCU implementation in bpqether.c.
Because bpq_new_device() calls list_add_rcu() and bpq_free_device() calls
list_del_rcu(), substitute list_for_each_entry_rcu() for
list_for_each_entry() in bpq_get_ax25_dev() and in bpq_seq_start().
Add rcu dereference protection in bpq_seq_next().
The rcu_read_lock()/unlock() in bpq_device_event() are removed because
netdev event handlers are called with RTNL locking in place.
FYI: bpq_free_device() calls list_del_rcu() which, per list.h, requires
synchronize_rcu() which can block or call_rcu() or call_rcu_bh() which
cannot block. Herbert Xu notes that synchronization is done here by
unregister_netdevice(). This calls synchronize_net() which in turn uses
synchronize_rcu().
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'lib/parser.c')
0 files changed, 0 insertions, 0 deletions