On 14/10/2021 09:52, Hector Martin wrote: > On 14/10/2021 16.36, Krzysztof Kozlowski wrote: (...) > >>> Ah, I didn't realize that was a valid option for MODULE_LICENSE. I guess >>> anything containing "GPL" works with EXPORT_SYMBOL_GPL? >> >> I don't think exporting symbols is related to how you license your code. > > It is; only modules with a GPL-compatible MODULE_LICENSE get to use > symbols exported via EXPORT_SYMBOL_GPL. Although there might be such correlation but it's not a rule. You can have a GPL module exporting symbols without GPL requirement (EXPORT_SYMBOLS). You can have a GPL+MIT module exporting symbols as GPL. Obviously you cannot have a non-GPL module, as we do not accept these and there is no such choice. So answering your question that "GPL" works with EXPORT_SYMBOL_GPL - everything is GPL but it works with both EXPORT_SYMBOL and EXPORT_SYMBOL_GPL. > > See kernel/module.c for the symbol lookup logic and > include/linux/license.h for the logic to check the string (seems like > "Dual MIT/GPL" is explicitly whitelisted there). Not related to export symbol. It is used for determining the tainted kernel via other licenses. > > Of course, this is a futile effort, as ~every time I see a proprietary > module in some embedded device, it either falsely declares itself to be > GPL, or they have a shim module that re-exports GPL symbols as non-GPL. > This is being removed soon (or already). Best regards, Krzysztof