diff options
author | Paul E. McKenney <paulmck@us.ibm.com> | 2006-06-23 05:05:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-23 10:43:07 -0400 |
commit | d83015b8f62ee3fcd338f6f009051ed57f77a531 (patch) | |
tree | 11e30548e6b07045f8a17aa4661e1cde6f374b18 | |
parent | 55f4e8d156d23709739029afb108932ef94cac94 (diff) |
[PATCH] Make RCU API inaccessible to non-GPL Linux kernel modules
Remove synchronize_kernel() (deprecated 2-APR-2005 in
http://lkml.org/lkml/2005/4/3/11) and makes the RCU API inaccessible to
non-GPL Linux kernel modules (as was announced more than one year ago in
http://lkml.org/lkml/2005/4/3/8). Tested on x86 and ppc64.
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>
-rw-r--r-- | Documentation/RCU/whatisRCU.txt | 1 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 15 | ||||
-rw-r--r-- | include/linux/rcupdate.h | 3 | ||||
-rw-r--r-- | kernel/rcupdate.c | 13 |
4 files changed, 3 insertions, 29 deletions
diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt index 07cb93b82ba9..6e459420ee9f 100644 --- a/Documentation/RCU/whatisRCU.txt +++ b/Documentation/RCU/whatisRCU.txt | |||
@@ -790,7 +790,6 @@ RCU pointer update: | |||
790 | 790 | ||
791 | RCU grace period: | 791 | RCU grace period: |
792 | 792 | ||
793 | synchronize_kernel (deprecated) | ||
794 | synchronize_net | 793 | synchronize_net |
795 | synchronize_sched | 794 | synchronize_sched |
796 | synchronize_rcu | 795 | synchronize_rcu |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index f7293297f326..027285d0c26c 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -33,21 +33,6 @@ Who: Adrian Bunk <bunk@stusta.de> | |||
33 | 33 | ||
34 | --------------------------- | 34 | --------------------------- |
35 | 35 | ||
36 | What: RCU API moves to EXPORT_SYMBOL_GPL | ||
37 | When: April 2006 | ||
38 | Files: include/linux/rcupdate.h, kernel/rcupdate.c | ||
39 | Why: Outside of Linux, the only implementations of anything even | ||
40 | vaguely resembling RCU that I am aware of are in DYNIX/ptx, | ||
41 | VM/XA, Tornado, and K42. I do not expect anyone to port binary | ||
42 | drivers or kernel modules from any of these, since the first two | ||
43 | are owned by IBM and the last two are open-source research OSes. | ||
44 | So these will move to GPL after a grace period to allow | ||
45 | people, who might be using implementations that I am not aware | ||
46 | of, to adjust to this upcoming change. | ||
47 | Who: Paul E. McKenney <paulmck@us.ibm.com> | ||
48 | |||
49 | --------------------------- | ||
50 | |||
51 | What: raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN | 36 | What: raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN |
52 | When: November 2006 | 37 | When: November 2006 |
53 | Why: Deprecated in favour of the new ioctl-based rawiso interface, which is | 38 | Why: Deprecated in favour of the new ioctl-based rawiso interface, which is |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 970284f571a6..6312758393b6 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -246,7 +246,7 @@ extern int rcu_needs_cpu(int cpu); | |||
246 | * softirq handlers will have completed, since in some kernels, these | 246 | * softirq handlers will have completed, since in some kernels, these |
247 | * handlers can run in process context, and can block. | 247 | * handlers can run in process context, and can block. |
248 | * | 248 | * |
249 | * This primitive provides the guarantees made by the (deprecated) | 249 | * This primitive provides the guarantees made by the (now removed) |
250 | * synchronize_kernel() API. In contrast, synchronize_rcu() only | 250 | * synchronize_kernel() API. In contrast, synchronize_rcu() only |
251 | * guarantees that rcu_read_lock() sections will have completed. | 251 | * guarantees that rcu_read_lock() sections will have completed. |
252 | * In "classic RCU", these two guarantees happen to be one and | 252 | * In "classic RCU", these two guarantees happen to be one and |
@@ -264,7 +264,6 @@ extern void FASTCALL(call_rcu(struct rcu_head *head, | |||
264 | void (*func)(struct rcu_head *head))); | 264 | void (*func)(struct rcu_head *head))); |
265 | extern void FASTCALL(call_rcu_bh(struct rcu_head *head, | 265 | extern void FASTCALL(call_rcu_bh(struct rcu_head *head, |
266 | void (*func)(struct rcu_head *head))); | 266 | void (*func)(struct rcu_head *head))); |
267 | extern __deprecated_for_modules void synchronize_kernel(void); | ||
268 | extern void synchronize_rcu(void); | 267 | extern void synchronize_rcu(void); |
269 | void synchronize_idle(void); | 268 | void synchronize_idle(void); |
270 | extern void rcu_barrier(void); | 269 | extern void rcu_barrier(void); |
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 2058f88c7bbb..20e9710fc21c 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c | |||
@@ -612,14 +612,6 @@ void synchronize_rcu(void) | |||
612 | wait_for_completion(&rcu.completion); | 612 | wait_for_completion(&rcu.completion); |
613 | } | 613 | } |
614 | 614 | ||
615 | /* | ||
616 | * Deprecated, use synchronize_rcu() or synchronize_sched() instead. | ||
617 | */ | ||
618 | void synchronize_kernel(void) | ||
619 | { | ||
620 | synchronize_rcu(); | ||
621 | } | ||
622 | |||
623 | module_param(blimit, int, 0); | 615 | module_param(blimit, int, 0); |
624 | module_param(qhimark, int, 0); | 616 | module_param(qhimark, int, 0); |
625 | module_param(qlowmark, int, 0); | 617 | module_param(qlowmark, int, 0); |
@@ -627,7 +619,6 @@ module_param(qlowmark, int, 0); | |||
627 | module_param(rsinterval, int, 0); | 619 | module_param(rsinterval, int, 0); |
628 | #endif | 620 | #endif |
629 | EXPORT_SYMBOL_GPL(rcu_batches_completed); | 621 | EXPORT_SYMBOL_GPL(rcu_batches_completed); |
630 | EXPORT_SYMBOL_GPL_FUTURE(call_rcu); /* WARNING: GPL-only in April 2006. */ | 622 | EXPORT_SYMBOL_GPL(call_rcu); |
631 | EXPORT_SYMBOL_GPL_FUTURE(call_rcu_bh); /* WARNING: GPL-only in April 2006. */ | 623 | EXPORT_SYMBOL_GPL(call_rcu_bh); |
632 | EXPORT_SYMBOL_GPL(synchronize_rcu); | 624 | EXPORT_SYMBOL_GPL(synchronize_rcu); |
633 | EXPORT_SYMBOL_GPL_FUTURE(synchronize_kernel); /* WARNING: GPL-only in April 2006. */ | ||