sched: make task_nice available to non-GPL modules
PATCH 1/1 sched: make task_nice available to non-GPL modules
The API is trivial, and so is the implementation. Linux priorities are exposed to the userspace, so nobody should claim that software aware of Linux priorities is a derived work of the kernel.
The complementary function set_user_nice() is available to non-GPL modules. If the module can set the priority, it should be able to read it back.
---
kernel/sched.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
kernel/sched.c +1 -1
@@ -4422,7 +4422,7 @@ int task_nice(const struct task_struct *p) {return TASK_NICE (p); } -EXPORT_SYMBOL_GPL (task_nice); +EXPORT_SYMBOL (task_nice);/** * idle_cpu - is a given cpu idle currently?
Quoted 7 lines · Pavel Roskin
The API is trivial, and so is the implementation. Linux priorities are exposed to the userspace, so nobody should claim that software aware of Linux priorities is a derived work of the kernel.
The complementary function
set_user_nice()is available to non-GPL modules. If the module can set the priority, it should be able to read it back.
i've applied this, but i removed the (incorrect) legal interpretation in the commit message. We simply make it available generally, and the export is not restricted to clearly internal modules only. (but that does not mean that a module using it is not a derived work)
this is a fine but important distinction. If a module uses a GPL symbol, it is a strong hint of being derived work. But by not using GPL-only symbols (but using other symbols - or not using kernel symbols at all) it might still be derived work and even if it's not derived work, it might still fall under the GPL.
in other words: EXPORT_SYMBOL does not mean and never meant EXPORT_SYMBOL_NON_GPL.
EXPORT_SYMBOL_GPL is EXPORT_SYMBOL_I_ADMIT_MY_MODULE_IS_DERIVED, and EXPORT_SYMBOL is EXPORT_SYMBOL_ASK_YOUR_LAWYER.
Ingo