linux/debian/patches/bugfix/all/revert-fix-subtle-config_mo...

61 lines
2.4 KiB
Diff

From: Ben Hutchings <ben@decadent.org.uk>
Date: Fri, 2 Dec 2016 00:07:04 +0000
Subject: Revert "Fix subtle CONFIG_MODVERSIONS problems"
This reverts commit cd3caefb4663e3811d37cc2afad3cce642d60061.
On Fri, 2016-11-25 at 10:01 -0800, Linus Torvalds wrote:
[...]
> > What else do people *actually* use it for? Preventing mismatched modules
> > when .git version is not attached and release version of the kernel has
> > not been bumped. Is that it?
>
> It used to be very useful for avoiding loading stale modules and then
> wasting days on debugging something that wasn't the case when you had
> forgotten to do "make modules_install". Change some subtle internal
> ABI issue (add/remove a parameter, whatever) and it would really help.
>
> These days, for me, LOCALVERSION_AUTO and module signing are what I
> personally tend to use.
>
> The modversions stuff may just be too painful to bother with. Very few
> people probably use it, and the ones that do likely don't have any
> overriding reason why.
[...]
Debian has some strong reasons:
1. Changing the release string requires any out-of-tree modules to be
upgraded (at least rebuilt) on end-user systems. So we try to avoid
doing that during the lifetime of a stable release, i.e. we don't let
the release string change. Also, the release string is reflected in
package names (e.g. linux-image-4.8.0-1-amd64), and introducing new
package names requires manual approval by the Debian archive team.
2. We want to allow ABI breaks for "internal" symbols used only by in-
tree modules, as those breaks will be resolved by rebooting to complete
the upgrade. But we need a run-time check to prevent loading an
incompatible module before the reboot.
3. So far as I can see, module signing doesn't work for a distribution
kernel with out-of-tree modules as there has to be a trust path from a
built-in certificate to the module signing certificate. So signature
enforcement will have to be disabled on systems that use out-of-tree
modules, thus it's not a substitute for modversions.
---
init/Kconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/init/Kconfig b/init/Kconfig
index c4fbc1e55c25..34407f15e6d3 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1945,7 +1945,6 @@ config MODULE_FORCE_UNLOAD
config MODVERSIONS
bool "Module versioning support"
- depends on BROKEN
help
Usually, you have to use modules compiled with your kernel.
Saying Y here makes it sometimes possible to use modules