Skip to contentSkip to conversation

sched: make task_nice available to non-GPL modules

PATCH In review Pavel Roskin 2 participants 2 messages Mar 5, 2008 – Mar 6, 2008

lore
Share & tools
lore
#0 lore raw

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
index dcd553c..6db6e0c 100644
@@ -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?
#1 lore raw
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