diff options
author | Paul E. McKenney <paulmck@us.ibm.com> | 2005-06-25 17:55:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:38 -0400 |
commit | b2b18660066997420b716c1881a6be8b82700d97 (patch) | |
tree | 7c6eb8e7b8163e3d332bd4a4efe2ae5b5cfabdd2 /security | |
parent | ae67cd643e9e64217fd92457324625c67fec6e35 (diff) |
[PATCH] RCU: clean up a few remaining synchronize_kernel() calls
2.6.12-rc6-mm1 has a few remaining synchronize_kernel()s, some (but not
all) in comments. This patch changes these synchronize_kernel() calls (and
comments) to synchronize_rcu() or synchronize_sched() as follows:
- arch/x86_64/kernel/mce.c mce_read(): change to synchronize_sched() to
handle races with machine-check exceptions (synchronize_rcu() would not cut
it given RCU implementations intended for hardcore realtime use.
- drivers/input/serio/i8042.c i8042_stop(): change to synchronize_sched() to
handle races with i8042_interrupt() interrupt handler. Again,
synchronize_rcu() would not cut it given RCU implementations intended for
hardcore realtime use.
- include/*/kdebug.h comments: change to synchronize_sched() to handle races
with NMIs. As before, synchronize_rcu() would not cut it...
- include/linux/list.h comment: change to synchronize_rcu(), since this
comment is for list_del_rcu().
- security/keys/key.c unregister_key_type(): change to synchronize_rcu(),
since this is interacting with RCU read side.
- security/keys/process_keys.c install_session_keyring(): change to
synchronize_rcu(), since this is interacting with RCU read side.
Signed-off-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'security')
-rw-r--r-- | security/keys/key.c | 2 | ||||
-rw-r--r-- | security/keys/process_keys.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/security/keys/key.c b/security/keys/key.c index 3304d37bb37..fb89f984446 100644 --- a/security/keys/key.c +++ b/security/keys/key.c | |||
@@ -980,7 +980,7 @@ void unregister_key_type(struct key_type *ktype) | |||
980 | spin_unlock(&key_serial_lock); | 980 | spin_unlock(&key_serial_lock); |
981 | 981 | ||
982 | /* make sure everyone revalidates their keys */ | 982 | /* make sure everyone revalidates their keys */ |
983 | synchronize_kernel(); | 983 | synchronize_rcu(); |
984 | 984 | ||
985 | /* we should now be able to destroy the payloads of all the keys of | 985 | /* we should now be able to destroy the payloads of all the keys of |
986 | * this type with impunity */ | 986 | * this type with impunity */ |
diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c index 34db087bbcc..9b0369c5a22 100644 --- a/security/keys/process_keys.c +++ b/security/keys/process_keys.c | |||
@@ -234,7 +234,7 @@ static int install_session_keyring(struct task_struct *tsk, | |||
234 | ret = 0; | 234 | ret = 0; |
235 | 235 | ||
236 | /* we're using RCU on the pointer */ | 236 | /* we're using RCU on the pointer */ |
237 | synchronize_kernel(); | 237 | synchronize_rcu(); |
238 | key_put(old); | 238 | key_put(old); |
239 | error: | 239 | error: |
240 | return ret; | 240 | return ret; |