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 /include | |
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 'include')
-rw-r--r-- | include/asm-i386/kdebug.h | 2 | ||||
-rw-r--r-- | include/asm-ppc64/kdebug.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/kdebug.h | 2 | ||||
-rw-r--r-- | include/asm-x86_64/kdebug.h | 2 | ||||
-rw-r--r-- | include/linux/list.h | 2 |
5 files changed, 5 insertions, 5 deletions
diff --git a/include/asm-i386/kdebug.h b/include/asm-i386/kdebug.h index de6498b0d49..b3f8d5f59d5 100644 --- a/include/asm-i386/kdebug.h +++ b/include/asm-i386/kdebug.h | |||
@@ -18,7 +18,7 @@ struct die_args { | |||
18 | }; | 18 | }; |
19 | 19 | ||
20 | /* Note - you should never unregister because that can race with NMIs. | 20 | /* Note - you should never unregister because that can race with NMIs. |
21 | If you really want to do it first unregister - then synchronize_kernel - then free. | 21 | If you really want to do it first unregister - then synchronize_sched - then free. |
22 | */ | 22 | */ |
23 | int register_die_notifier(struct notifier_block *nb); | 23 | int register_die_notifier(struct notifier_block *nb); |
24 | extern struct notifier_block *i386die_chain; | 24 | extern struct notifier_block *i386die_chain; |
diff --git a/include/asm-ppc64/kdebug.h b/include/asm-ppc64/kdebug.h index 488634258a7..d383d161cf8 100644 --- a/include/asm-ppc64/kdebug.h +++ b/include/asm-ppc64/kdebug.h | |||
@@ -17,7 +17,7 @@ struct die_args { | |||
17 | 17 | ||
18 | /* | 18 | /* |
19 | Note - you should never unregister because that can race with NMIs. | 19 | Note - you should never unregister because that can race with NMIs. |
20 | If you really want to do it first unregister - then synchronize_kernel - | 20 | If you really want to do it first unregister - then synchronize_sched - |
21 | then free. | 21 | then free. |
22 | */ | 22 | */ |
23 | int register_die_notifier(struct notifier_block *nb); | 23 | int register_die_notifier(struct notifier_block *nb); |
diff --git a/include/asm-sparc64/kdebug.h b/include/asm-sparc64/kdebug.h index f70d3dad01f..6321f5a0198 100644 --- a/include/asm-sparc64/kdebug.h +++ b/include/asm-sparc64/kdebug.h | |||
@@ -16,7 +16,7 @@ struct die_args { | |||
16 | }; | 16 | }; |
17 | 17 | ||
18 | /* Note - you should never unregister because that can race with NMIs. | 18 | /* Note - you should never unregister because that can race with NMIs. |
19 | * If you really want to do it first unregister - then synchronize_kernel | 19 | * If you really want to do it first unregister - then synchronize_sched |
20 | * - then free. | 20 | * - then free. |
21 | */ | 21 | */ |
22 | int register_die_notifier(struct notifier_block *nb); | 22 | int register_die_notifier(struct notifier_block *nb); |
diff --git a/include/asm-x86_64/kdebug.h b/include/asm-x86_64/kdebug.h index 6277f75cbb4..b90341994d8 100644 --- a/include/asm-x86_64/kdebug.h +++ b/include/asm-x86_64/kdebug.h | |||
@@ -14,7 +14,7 @@ struct die_args { | |||
14 | }; | 14 | }; |
15 | 15 | ||
16 | /* Note - you should never unregister because that can race with NMIs. | 16 | /* Note - you should never unregister because that can race with NMIs. |
17 | If you really want to do it first unregister - then synchronize_kernel - then free. | 17 | If you really want to do it first unregister - then synchronize_sched - then free. |
18 | */ | 18 | */ |
19 | int register_die_notifier(struct notifier_block *nb); | 19 | int register_die_notifier(struct notifier_block *nb); |
20 | extern struct notifier_block *die_chain; | 20 | extern struct notifier_block *die_chain; |
diff --git a/include/linux/list.h b/include/linux/list.h index 399b51d1721..aab2db21b01 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
@@ -185,7 +185,7 @@ static inline void list_del(struct list_head *entry) | |||
185 | * list_for_each_entry_rcu(). | 185 | * list_for_each_entry_rcu(). |
186 | * | 186 | * |
187 | * Note that the caller is not permitted to immediately free | 187 | * Note that the caller is not permitted to immediately free |
188 | * the newly deleted entry. Instead, either synchronize_kernel() | 188 | * the newly deleted entry. Instead, either synchronize_rcu() |
189 | * or call_rcu() must be used to defer freeing until an RCU | 189 | * or call_rcu() must be used to defer freeing until an RCU |
190 | * grace period has elapsed. | 190 | * grace period has elapsed. |
191 | */ | 191 | */ |