diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2019-09-12 10:52:54 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2019-09-12 10:52:54 -0400 |
commit | 3ab108b3888c61caa795992e3938b997b70ee4cf (patch) | |
tree | ab48c660f2b30b2158fa4acc84885f9e6b17461d | |
parent | 715dd26c137646cf0929fe34db34ef5fdf443e7e (diff) | |
download | longterm-queue-4.18-3ab108b3888c61caa795992e3938b997b70ee4cf.tar.gz |
module: drop gcc9 patch - breaks build
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/include-linux-module.h-copy-__init-__exit-attrs-to-i.patch | 78 | ||||
-rw-r--r-- | queue/series | 1 |
2 files changed, 0 insertions, 79 deletions
diff --git a/queue/include-linux-module.h-copy-__init-__exit-attrs-to-i.patch b/queue/include-linux-module.h-copy-__init-__exit-attrs-to-i.patch deleted file mode 100644 index 05fa3c1..0000000 --- a/queue/include-linux-module.h-copy-__init-__exit-attrs-to-i.patch +++ /dev/null @@ -1,78 +0,0 @@ -From a6e60d84989fa0e91db7f236eda40453b0e44afa Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> -Date: Sat, 19 Jan 2019 20:59:34 +0100 -Subject: [PATCH] include/linux/module.h: copy __init/__exit attrs to - init/cleanup_module - -commit a6e60d84989fa0e91db7f236eda40453b0e44afa upstream. - -The upcoming GCC 9 release extends the -Wmissing-attributes warnings -(enabled by -Wall) to C and aliases: it warns when particular function -attributes are missing in the aliases but not in their target. - -In particular, it triggers for all the init/cleanup_module -aliases in the kernel (defined by the module_init/exit macros), -ending up being very noisy. - -These aliases point to the __init/__exit functions of a module, -which are defined as __cold (among other attributes). However, -the aliases themselves do not have the __cold attribute. - -Since the compiler behaves differently when compiling a __cold -function as well as when compiling paths leading to calls -to __cold functions, the warning is trying to point out -the possibly-forgotten attribute in the alias. - -In order to keep the warning enabled, we decided to silence -this case. Ideally, we would mark the aliases directly -as __init/__exit. However, there are currently around 132 modules -in the kernel which are missing __init/__exit in their init/cleanup -functions (either because they are missing, or for other reasons, -e.g. the functions being called from somewhere else); and -a section mismatch is a hard error. - -A conservative alternative was to mark the aliases as __cold only. -However, since we would like to eventually enforce __init/__exit -to be always marked, we chose to use the new __copy function -attribute (introduced by GCC 9 as well to deal with this). -With it, we copy the attributes used by the target functions -into the aliases. This way, functions that were not marked -as __init/__exit won't have their aliases marked either, -and therefore there won't be a section mismatch. - -Note that the warning would go away marking either the extern -declaration, the definition, or both. However, we only mark -the definition of the alias, since we do not want callers -(which only see the declaration) to be compiled as if the function -was __cold (and therefore the paths leading to those calls -would be assumed to be unlikely). - -Link: https://lore.kernel.org/lkml/20190123173707.GA16603@gmail.com/ -Link: https://lore.kernel.org/lkml/20190206175627.GA20399@gmail.com/ -Suggested-by: Martin Sebor <msebor@gcc.gnu.org> -Acked-by: Jessica Yu <jeyu@kernel.org> -Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> - -diff --git a/include/linux/module.h b/include/linux/module.h -index 8fa38d3e7538..f5bc4c046461 100644 ---- a/include/linux/module.h -+++ b/include/linux/module.h -@@ -129,13 +129,13 @@ extern void cleanup_module(void); - #define module_init(initfn) \ - static inline initcall_t __maybe_unused __inittest(void) \ - { return initfn; } \ -- int init_module(void) __attribute__((alias(#initfn))); -+ int init_module(void) __copy(initfn) __attribute__((alias(#initfn))); - - /* This is only required if you want to be unloadable. */ - #define module_exit(exitfn) \ - static inline exitcall_t __maybe_unused __exittest(void) \ - { return exitfn; } \ -- void cleanup_module(void) __attribute__((alias(#exitfn))); -+ void cleanup_module(void) __copy(exitfn) __attribute__((alias(#exitfn))); - - #endif - --- -2.9.5 - diff --git a/queue/series b/queue/series index 5205f07..724a476 100644 --- a/queue/series +++ b/queue/series @@ -77,7 +77,6 @@ drm-tegra-gem-Fix-CPU-cache-maintenance-for-BO-s-all.patch drm-vmwgfx-Don-t-send-drm-sysfs-hotplug-events-on-in.patch drm-sun4i-Fix-sun8i-HDMI-PHY-configuration-for-148.5.patch drm-lease-Make-sure-implicit-planes-are-leased.patch -include-linux-module.h-copy-__init-__exit-attrs-to-i.patch x86-ftrace-Do-not-call-function-graph-from-dynamic-t.patch x86-ftrace-Set-trampoline-pages-as-executable.patch x86-kprobes-Set-instruction-page-as-executable.patch |