Commit d8c949c5 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Jonathan Corbet
Browse files

docs/licensing: Clarify wording about "GPL" and "Proprietary"



There are currently some doubts about out-of-tree kernel modules licensed
under GPLv3 and if they are supposed to be able to use symbols exported
using EXPORT_SYMBOL_GPL.

Clarify that "Proprietary" means anything non-GPL2 even though the
license might be an open source license. Also disambiguate "GPL
compatible" to "GPLv2 compatible".

Signed-off-by: default avatarUwe Kleine-König <ukleinek@kernel.org>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20241115103842.585207-2-ukleinek@kernel.org
parent 21e50013
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -587,7 +587,7 @@ Defined in ``include/linux/export.h``

Similar to :c:func:`EXPORT_SYMBOL()` except that the symbols
exported by :c:func:`EXPORT_SYMBOL_GPL()` can only be seen by
modules with a :c:func:`MODULE_LICENSE()` that specifies a GPL
modules with a :c:func:`MODULE_LICENSE()` that specifies a GPLv2
compatible license. It implies that the function is considered an
internal implementation issue, and not really an interface. Some
maintainers and developers may however require EXPORT_SYMBOL_GPL()
+10 −8
Original line number Diff line number Diff line
@@ -471,14 +471,16 @@ _`MODULE_LICENSE`
				  source files.

    "Proprietary"		  The module is under a proprietary license.
				  This string is solely for proprietary third
				  party modules and cannot be used for modules
				  which have their source code in the kernel
				  tree. Modules tagged that way are tainting
				  the kernel with the 'P' flag when loaded and
				  the kernel module loader refuses to link such
				  modules against symbols which are exported
				  with EXPORT_SYMBOL_GPL().
				  "Proprietary" is to be understood only as
				  "The license is not compatible to GPLv2".
                                  This string is solely for non-GPL2 compatible
                                  third party modules and cannot be used for
                                  modules which have their source code in the
                                  kernel tree. Modules tagged that way are
                                  tainting the kernel with the 'P' flag when
                                  loaded and the kernel module loader refuses
                                  to link such modules against symbols which
                                  are exported with EXPORT_SYMBOL_GPL().
    ============================= =============================================