
独自の開発は、多くのアプリケーションやサービスのコードに深く浸透しています。複雑なシステムでは、それらを取り除くことは非常に困難です。多くの場合、これには「クラッチ」のような回避策が使用されます。Linuxカーネルは、中間層ドライバーを使用して、ドライバー呼び出しをカーネルに変換するためにほぼ排他的に設計された独自のドライバーを操作します。中間層にはオープンソースコードがあるため、GPLライセンスに問題はなく、手続きに従います。
しかし、このアプローチには多くの敵がいます。そのうちの1人は、Linuxカーネル開発者のChristophHellwigです。彼は以前、LinuxFoundationの技術運営委員会のメンバーでした。彼はまた、VMwareとの訴訟で原告を務めました。Helwigは、独自のドライバーをLinuxカーネルコンポーネントにバインドすることに対する保護を大幅に強化することを提案しました。
これを行うには、GPLシンボルのエクスポートに関連付けられたフラグを継承できるようにするパッチを使用することを提案します。この場合、TAINT_PROPRIETARY_MODULEフラグは、このフラグを持つモジュールからシンボルをインポートするすべてのモジュールで継承されます。保護の本質は、中間層ドライバーがGPLモジュールからではないものをインポートした場合、GPLモジュールはTAINT_PROPRIETARY_MODULEラベルを継承し、GPLモジュールでのみ使用可能なカーネルコンポーネントにアクセスできないことです。

出典:3dnews
議論の中で、逆ブロッキングも提案されました。たとえば、モジュールがEXPORT_SYMBOL_GPLをインポートする場合、モジュールによってエクスポートされたシンボルは、GPL互換性を要求しないモジュールによってインポートされるべきではありません。提案はヘルウィッグによってではなく、議論の別の参加者によってなされました。しかし、ヘルウィッグは彼に同意した。ほとんどの場合、Linus Torvaldsはこの提案をスキップしません。これは、独自のドライバーの多数のカーネルサブシステムをブロックするためです。出版後、
大騒ぎが起こったnetgpuサブシステムを実装したFacebookのパッチエンジニア。このサブシステムにより、CPUによるプロトコル処理の実行により、ネットワークカードとGPU間の直接データ交換を整理できます。提案に基づいて、GPUまたは外部CXD間のデータ交換のためのRDMAの一般的な実装を行うことができます。多くの開発者は、実装がこれらのドライバーによって提供されるレイヤーを介して独自のNVIDIAドライバーでのみ利用可能であるため、そのような革新に不満を表明しました。 Helvigは開発者をトロールとさえ呼んだ。
次に、パッチの作成者は、サブシステムがNVIDIAに関連付けられていないため、AMDおよびIntelGPUへのソフトウェアインターフェイスをサポートできることに反対しました。最終的に、AMDGPU、Intel i915、Nouveauなどの無料ドライバーに基づくサポートが機能するまで、カーネルでnetgpuをプロモートすることは不可能であると見なされました。