X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=kernel%2Fnotifier.c;h=2488ba7eb568784eb5c13b57247918409c4caf13;hb=0581b52e898f3f5472820940537d91d80895db5a;hp=acd24e7643eb8ebdb9a0386b65931294b37c7eaf;hpb=8f270083587a4cb70fa14f0e2fd698eb08a4dd07;p=safe%2Fjmp%2Flinux-2.6 diff --git a/kernel/notifier.c b/kernel/notifier.c index acd24e7..2488ba7 100644 --- a/kernel/notifier.c +++ b/kernel/notifier.c @@ -78,10 +78,10 @@ static int __kprobes notifier_call_chain(struct notifier_block **nl, int ret = NOTIFY_DONE; struct notifier_block *nb, *next_nb; - nb = rcu_dereference(*nl); + nb = rcu_dereference_raw(*nl); while (nb && nr_to_call) { - next_nb = rcu_dereference(nb->next); + next_nb = rcu_dereference_raw(nb->next); #ifdef CONFIG_DEBUG_NOTIFIERS if (unlikely(!func_ptr_is_kernel_text(nb->notifier_call))) { @@ -309,7 +309,7 @@ int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, * racy then it does not matter what the result of the test * is, we re-check the list after having taken the lock anyway: */ - if (rcu_dereference(nh->head)) { + if (rcu_dereference_raw(nh->head)) { down_read(&nh->rwsem); ret = notifier_call_chain(&nh->head, val, v, nr_to_call, nr_calls);