Thread (1 message) 1 message, 1 author, 2007-12-01

Re: namespace support requires network modules to say "GPL"

From: Eric W. Biederman <hidden>
Date: 2007-12-01 19:57:30
Also in: lkml

Stephen Hemminger [off-list ref] writes:
On Sat, 01 Dec 2007 08:10:17 -0500
Mark Lord [off-list ref] wrote:
quoted
quoted
Now that we have network namespace support merged it is time to
revisit the sysfs support so we can remove the dependency on !SYSFS.
...

Now that the namespace updates are part of 2.6.24,
there is a major inconsistency in network EXPORT_SYMBOLs.

It used to be that an external network module could get away without
having to add a MODULE_LICENSE("GPL*") line to the source.

In support of that, common networking functions (still) use EXPORT_SYMBOL()
rather than the more restrictive EXPORT_SYMBOL_GPL().

Eg.  register_netdev(), sk_alloc(), __dev_get_by_name().

But now, none of those three are actually usable by default,
because they all require "init_net", which is EXPORT_SYMBOL_GPL().
Which alternative kernel does the above comment apply to?
Then init_net needs to be not GPL limited. Sorry, we need to allow
non GPL network drivers.
For the record network drivers should not be affected.  As a practical
measure that just gets unmaintainable and it is unnecessary.

There are specific exceptions where network drivers mess with the userspace
interfaces where I do have some impact.  However if you are messing
with our userspace interface especially with network namespaces in place
I don't see how it is possible for you to be anything other then a derivative
work, and something we need in tree to keep maintenance a manageable thing.

It should just be the core of the network stack that struct net has some
effect on.
There is a fine line between keeping the
binary seething masses from accessing random kernel functions, and allowing
reasonable (but still non GPL) things like ndiswrapper to use network
device interface.
Does ndiswrapper break?  If so what dubious and unsupportable thing is
it doing?

Eric
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help