From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 7 Jan 2019 21:03:10 +0000 Subject: [PATCH] modules: add rhelversion MODULE_INFO tag There were several changes in the 5.0-rc1 kernel that required this patch to be rebased with some context diff. Patchwork-id: 7379 O-Subject: [kernel team] [RHEL8.0 BZ 1544999 1/2] modules: add rhelversion MODULE_INFO tag Bugzilla: 1544999 RH-Acked-by: Tony Camuso RH-Acked-by: Oleg Nesterov RH-Acked-by: Jarod Wilson Bugzilla: http://bugzilla.redhat.com/1544999 kernel-alt commit 9816b4b6ca5d4c0504d8806ce99442c90afbc8e6 Author: Prarit Bhargava Date: Fri Feb 9 18:09:26 2018 -0500 [kernel] modules: add rhelversion MODULE_INFO tag Message-id: <20180209180926.5955-3-prarit@redhat.com> Patchwork-id: 205587 O-Subject: [RHEL-ALT-7.5 BZ 1542796 2/2] modules: add rhelversion MODULE_INFO tag Bugzilla: 1542796 RH-Acked-by: David Arcari RH-Acked-by: Tony Camuso RH-Acked-by: Steve Best Bugzilla: http://bugzilla.redhat.com/1542796 rhel7 commit 9af8c3992ce5fff253c49abc0dedb3ec77badba4 Author: Kyle McMartin Date: Fri Sep 12 17:46:12 2014 -0400 [kernel] modules: add rhelversion MODULE_INFO tag Message-id: <20140912174612.GS29420@redacted.bos.redhat.com> Patchwork-id: 94052 O-Subject: [RHEL7.1 PATCH 2/6 v4] modules: add rhelversion MODULE_INFO tag Bugzilla: 1110315 RH-Acked-by: Prarit Bhargava RH-Acked-by: Johannes Weiner RH-Acked-by: Don Zickus From: Kyle McMartin Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1110315 >From kylem's RHEL8 post: Let's not lose this ability in RHEL8. Sadly can't be applied to RHEL7 because it breaks KABI due to the struct module change. Inspired by bits of a147e4729d9920ccae2c717ca65c811cc0f93a1d in RHEL6, which got lost for RHEL7.0. :/ Kyle is correct and doing this would break RHEL7's KABI. I'm taking this patch in as a base and the next patch will resolve the KABI issues. [v2]: dzickus, cleanup add_rhelversion() [v4]: resubmitted along with 16k stacks change Signed-off-by: Jarod Wilson Cc: Richard Guy Briggs Cc: Peter Rajnoha Cc: Laura Abbott Cc: Josh Poimboeuf Signed-off-by: Herton R. Krzesinski Upstream Status: RHEL only Signed-off-by: Herton R. Krzesinski Acked-by: Don Zickus Acked-by: Prarit Bhargava --- include/linux/module.h | 1 + kernel/module.c | 2 ++ scripts/mod/modpost.c | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/include/linux/module.h b/include/linux/module.h index 2e6670860d27..8c35a5db7d7e 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -371,6 +371,7 @@ struct module { struct module_attribute *modinfo_attrs; const char *version; const char *srcversion; + const char *rhelversion; struct kobject *holders_dir; /* Exported symbols */ diff --git a/kernel/module.c b/kernel/module.c index ef400c389f49..4a7cb21d7e74 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -802,6 +802,7 @@ static struct module_attribute modinfo_##field = { \ MODINFO_ATTR(version); MODINFO_ATTR(srcversion); +MODINFO_ATTR(rhelversion); static char last_unloaded_module[MODULE_NAME_LEN+1]; @@ -1266,6 +1267,7 @@ static struct module_attribute *modinfo_attrs[] = { &module_uevent, &modinfo_version, &modinfo_srcversion, + &modinfo_rhelversion, &modinfo_initstate, &modinfo_coresize, &modinfo_initsize, diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 6aea65c65745..ed3c4d8a1c7f 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -21,6 +21,7 @@ #include #include "modpost.h" #include "../../include/linux/license.h" +#include "../../include/generated/uapi/linux/version.h" /* Are we using CONFIG_MODVERSIONS? */ static int modversions = 0; @@ -2384,6 +2385,12 @@ static void write_buf(struct buffer *b, const char *fname) } } +static void add_rhelversion(struct buffer *b, struct module *mod) +{ + buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR, + RHEL_MINOR); +} + static void write_if_changed(struct buffer *b, const char *fname) { char *tmp; @@ -2636,6 +2643,7 @@ int main(int argc, char **argv) add_depends(&buf, mod); add_moddevtable(&buf, mod); add_srcversion(&buf, mod); + add_rhelversion(&buf, mod); sprintf(fname, "%s.mod.c", mod->name); write_if_changed(&buf, fname); -- 2.26.2