From: "Paul E. McKenney" The gpl exports need to be put back. Moving them to GPL -- but in a measured manner, as I proposed on this list some months ago -- is fine. Changing these particular exports precipitously is most definitely -not- fine. Here is my earlier proposal: http://marc.theaimsgroup.com/?l=linux-kernel&m=110520930301813&w=2 See below for a patch that puts the exports back, along with an updated version of my earlier patch that starts the process of moving them to GPL. I will also be following this message with RFC patches that introduce two (EXPORT_SYMBOL_GPL) interfaces to replace synchronize_kernel(), which then becomes deprecated. Signed-off-by: Signed-off-by: Andrew Morton --- 25-akpm/Documentation/feature-removal-schedule.txt | 15 +++++++++++++++ 25-akpm/kernel/rcupdate.c | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff -puN Documentation/feature-removal-schedule.txt~kernel-rcupdatec-make-the-exports-export_symbol_gpl Documentation/feature-removal-schedule.txt --- 25/Documentation/feature-removal-schedule.txt~kernel-rcupdatec-make-the-exports-export_symbol_gpl 2005-04-04 01:48:00.000000000 -0700 +++ 25-akpm/Documentation/feature-removal-schedule.txt 2005-04-04 01:48:27.000000000 -0700 @@ -48,3 +48,18 @@ When: April 2005 Why: Replaced by ->compat_ioctl in file_operations and other method vecors. Who: Andi Kleen , Christoph Hellwig + +--------------------------- + +What: RCU API moves to EXPORT_SYMBOL_GPL +When: April 2006 +Files: include/linux/rcupdate.h, kernel/rcupdate.c +Why: Outside of Linux, the only implementations of anything even + vaguely resembling RCU that I am aware of are in DYNIX/ptx, + VM/XA, Tornado, and K42. I do not expect anyone to port binary + drivers or kernel modules from any of these, since the first two + are owned by IBM and the last two are open-source research OSes. + So these will move to GPL after a grace period to allow + people, who might be using implementations that I am not aware + of, to adjust to this upcoming change. +Who: Paul E. McKenney diff -puN kernel/rcupdate.c~kernel-rcupdatec-make-the-exports-export_symbol_gpl kernel/rcupdate.c --- 25/kernel/rcupdate.c~kernel-rcupdatec-make-the-exports-export_symbol_gpl 2005-04-04 01:48:00.000000000 -0700 +++ 25-akpm/kernel/rcupdate.c 2005-04-04 01:48:00.000000000 -0700 @@ -465,6 +465,6 @@ void synchronize_kernel(void) } module_param(maxbatch, int, 0); -EXPORT_SYMBOL_GPL(call_rcu); -EXPORT_SYMBOL_GPL(call_rcu_bh); -EXPORT_SYMBOL_GPL(synchronize_kernel); +EXPORT_SYMBOL(call_rcu); /* WARNING: GPL-only in April 2006. */ +EXPORT_SYMBOL(call_rcu_bh); /* WARNING: GPL-only in April 2006. */ +EXPORT_SYMBOL(synchronize_kernel); /* WARNING: GPL-only in April 2006. */ _