Driver core functions: GPL only
The affected functions are a fundamental component of the Linux driver model; they are used by every device driver and filesystem, and by many other parts of the kernel as well. Even so, few, if any, proprietary modules will be affected by this change. The interfaces used by most modules are built on top of - and hide - the driver core. Thus, it is a rare driver which calls device_register(); instead, something like usb_register_dev() is used. Those upper-layer functions remain exported to all modules.
So why make the change? Patrick's reasoning is that he wants all users of the low-level functions to be part of the mainline kernel tree.
As the kernel tree becomes more dynamic internally, it will be increasingly
hard for external modules - free or not - to keep up with the changes. It
would not be surprising to see ever more "encouragement" to merge external
modules into the mainline. Code which remains outside will require a
higher level of maintenance, or it is likely to break frequently.
| Index entries for this article | |
|---|---|
| Kernel | Device model |
| Kernel | Modules/Licensing |
| Kernel | Sysfs |