Christoph Hellwig, známý vývojář jádra Linux, který byl v minulosti členem řídicího technického výboru organizace Linux Foundation a vystupoval jako žalobce v souvisejícím řízení týkajícím se GPL s VMware, zpřísnit ochranu proti spojování proprietárních ovladačů s komponenty jádra Linux, které jsou exportovány pouze pro moduly pod licencí GPL. Aby obcházeli omezení na export GPL-symbolů, výrobci proprietárních ovladačů používají aplikační modul, jehož kód je otevřený a distribuován pod licencí GPLv2, ale jeho funkce spočívá v překladu přístupu proprietárního ovladače k nezbytným API jádra, které je zakázáno používat přímo z proprietárního kódu.
K zablokování takového manévru Christoph Hellwig pro jádro Linux navrhuje záplaty, které zajišťují dědění vlajek souvisejících s exportem GPL-symbolů. Návrh spočívá v dědění vlajky TAINT_PROPRIETARY_MODULE ve všech modulech, které importují symboly z modulů s touto vlajkou. Takže pokud se GPL aplikační modul pokusí importovat symboly z ne-GPL modulu, GPL modul zdědí označení TAINT_PROPRIETARY_MODULE a nebude moci přistupovat k komponentům jádra, které jsou k dispozici pouze pro moduly pod licencí GPL, i když modul dříve importoval symboly z kategorie „gplonly“.
Během diskuse bylo také navrhnuto obrácené zablokování — pokud modul importuje symboly EXPORT_SYMBOL_GPL, jakékoli symboly exportované tímto modulem by neměly být importovány moduly, které se výslovně nehlásí k kompatibilitě s GPL. Tedy, pokud modul importuje symboly EXPORT_SYMBOL_GPL, všechny jeho exportované symboly by měly být zpracovány jako EXPORT_SYMBOL_GPL. Christoph Hellwig , že s tímto návrhem 100% souhlasí, ale tuto změnu Linus Torvalds neschválí, protože by vedla k nedostupnosti většiny subsystémů jádra pro proprietární ovladače, protože při vývoji ovladačů se připojují základní symboly, které jsou exportovány pod GPL.
Změna byla navržena v reakci na inženýrem z Facebooku sérii záplat s implementací nového subsystému netgpu, který umožňuje organizovat přímý přenos dat (DMA
zero-copy) mezi síťovou kartou a GPU, přičemž zpracování protokolu probíhá silami CPU. vývojářů vyvolala realizace pouze pro proprietární ovladače NVIDIA prostřednictvím GPL vrstvy poskytované těmito ovladači. V reakci na autor patchů , že subsystém není vázán na NVIDIA a jeho podpora může být zajištěna také pro programové rozhraní k GPU AMD a Intel. Výsledkem bylo, že propagace netgpu do jádra byla uznána za nemožnou do doby, než se objeví funkční podpora založená na svobodných ovladačích, jako jsou AMDGPU, Intel i915 nebo Nouveau.
Zdroj: opennet.ru
