[lkml]   [2005]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectPlease open sysfs symbols to proprietary modules

I'm writing a module under a proprietary license. I decided to use sysfs
to do the configuration. Unfortunately, all sysfs exports are available
to GPL modules only because they are exported by EXPORT_SYMBOL_GPL.

I have found the original e-mail where this change was proposed:

Patrick writes:

"The users of these functions are all, in most cases, other subsystems,
which provide a layer of abstraction for the downstream users (drivers,

Maybe it was true in September 2004, but it's not true in February 2005.
sysfs has become a standard way to make configurable parameters available
to userspace, just like sysctl and ioctl.

All I want to do is to have a module that would create subdirectories for
some network interfaces under /sys/class/net/*/, which would contain
additional parameters for those interfaces. I'm not creating a new
subsystem or anything like that. sysctl is not good because the data is
interface specific. ioctl on a socket would be OK, although it wouldn't
be easily scriptable. The restriction on sysfs symbols would just force
me to write a proprietary userspace utility to set those parameters
instead of using a shell script.

My understanding is that EXPORT_SYMBOL_GPL is only useful for symbols so
specific to the kernel that the modules that use them would be effectively
based on GPL code. But a module providing its internal state to the
userspace doesn't need to be based on the kernel code in any way.

Please replace every EXPORT_SYMBOL_GPL with EXPORT_SYMBOL in fs/sysfs/*.c

Pavel Roskin
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 14:10    [W:0.105 / U:4.252 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site