[PATCH] [RFC] [Oops fix] module support: record in vermagic ability to unload a module

From: Paolo 'Blaisorblade' Giarrusso
Date: Sun Nov 20 2005 - 15:07:06 EST


From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx>

An UML user reported (against 2.6.13.3/UML) he got kernel Oopses when trying to
rmmod (on a kernel with module unloading enabled) a module compiled with module
unloading disabled. As crashing is a very correct thing to do in that case, a
solution is altering the vermagic string to include this too.

Possibly, however, the code should not crash in this case, even if the module
didn't support unloading - it should simply abort the module removal. In this case,
fixing that bug would be a better solution. I've not investigated though.

Thanks to Hayim for reporting.

Cc: Hayim Shaul <hayim@xxxxxxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx>
---

include/linux/vermagic.h | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
index fadc535..dc7c621 100644
--- a/include/linux/vermagic.h
+++ b/include/linux/vermagic.h
@@ -12,6 +12,11 @@
#else
#define MODULE_VERMAGIC_PREEMPT ""
#endif
+#ifdef CONFIG_MODULE_UNLOAD
+#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
+#else
+#define MODULE_VERMAGIC_MODULE_UNLOAD ""
+#endif
#ifndef MODULE_ARCH_VERMAGIC
#define MODULE_ARCH_VERMAGIC ""
#endif
@@ -19,5 +24,5 @@
#define VERMAGIC_STRING \
UTS_RELEASE " " \
MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
- MODULE_ARCH_VERMAGIC \
+ MODULE_VERMAGIC_MODULE_UNLOAD MODULE_ARCH_VERMAGIC \
"gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/