From: Greg Kroah-Hartman Date: Fri, 17 May 2019 09:43:10 +0000 (+0200) Subject: drop include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch X-Git-Tag: v4.9.178~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ca5a73a3057ef8b8cb7424a31236d40e17249d31;p=thirdparty%2Fkernel%2Fstable-queue.git drop include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch It blows things up, I need to apply things in the correct order... --- diff --git a/queue-4.14/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch b/queue-4.14/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch deleted file mode 100644 index 2d85416f31a..00000000000 --- a/queue-4.14/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch +++ /dev/null @@ -1,79 +0,0 @@ -From a6e60d84989fa0e91db7f236eda40453b0e44afa Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda -Date: Sat, 19 Jan 2019 20:59:34 +0100 -Subject: include/linux/module.h: copy __init/__exit attrs to init/cleanup_module - -From: Miguel Ojeda - -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 -Acked-by: Jessica Yu -Signed-off-by: Miguel Ojeda -Signed-off-by: Greg Kroah-Hartman - ---- - include/linux/module.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/include/linux/module.h -+++ b/include/linux/module.h -@@ -128,13 +128,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 - diff --git a/queue-4.14/series b/queue-4.14/series index 36c041e5943..1e6a136f120 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -3,4 +3,3 @@ locking-rwsem-prevent-decrement-of-reader-count-befo.patch pci-hv-fix-a-memory-leak-in-hv_eject_device_work.patch pci-hv-add-hv_pci_remove_slots-when-we-unload-the-dr.patch pci-hv-add-pci_destroy_slot-in-pci_devices_present_w.patch -include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch diff --git a/queue-4.19/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch b/queue-4.19/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch deleted file mode 100644 index 47de16a07e8..00000000000 --- a/queue-4.19/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch +++ /dev/null @@ -1,79 +0,0 @@ -From a6e60d84989fa0e91db7f236eda40453b0e44afa Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda -Date: Sat, 19 Jan 2019 20:59:34 +0100 -Subject: include/linux/module.h: copy __init/__exit attrs to init/cleanup_module - -From: Miguel Ojeda - -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 -Acked-by: Jessica Yu -Signed-off-by: Miguel Ojeda -Signed-off-by: Greg Kroah-Hartman - ---- - include/linux/module.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/include/linux/module.h -+++ b/include/linux/module.h -@@ -130,13 +130,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 - diff --git a/queue-4.19/series b/queue-4.19/series index 2034a068520..c18ea0bf517 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -1,2 +1 @@ locking-rwsem-prevent-decrement-of-reader-count-befo.patch -include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch diff --git a/queue-4.4/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch b/queue-4.4/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch deleted file mode 100644 index 56f992afbd1..00000000000 --- a/queue-4.4/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch +++ /dev/null @@ -1,79 +0,0 @@ -From a6e60d84989fa0e91db7f236eda40453b0e44afa Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda -Date: Sat, 19 Jan 2019 20:59:34 +0100 -Subject: include/linux/module.h: copy __init/__exit attrs to init/cleanup_module - -From: Miguel Ojeda - -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 -Acked-by: Jessica Yu -Signed-off-by: Miguel Ojeda -Signed-off-by: Greg Kroah-Hartman - ---- - include/linux/module.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/include/linux/module.h -+++ b/include/linux/module.h -@@ -127,13 +127,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 - diff --git a/queue-4.4/series b/queue-4.4/series index f926460b8de..e69de29bb2d 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -1 +0,0 @@ -include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch diff --git a/queue-4.9/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch b/queue-4.9/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch deleted file mode 100644 index 34838007073..00000000000 --- a/queue-4.9/include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch +++ /dev/null @@ -1,79 +0,0 @@ -From a6e60d84989fa0e91db7f236eda40453b0e44afa Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda -Date: Sat, 19 Jan 2019 20:59:34 +0100 -Subject: include/linux/module.h: copy __init/__exit attrs to init/cleanup_module - -From: Miguel Ojeda - -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 -Acked-by: Jessica Yu -Signed-off-by: Miguel Ojeda -Signed-off-by: Greg Kroah-Hartman - ---- - include/linux/module.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- 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 - diff --git a/queue-4.9/series b/queue-4.9/series index 855f821f7c3..7049931f6b8 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -1,4 +1,3 @@ net-core-another-layer-of-lists-around-pf_memalloc-s.patch locking-rwsem-prevent-decrement-of-reader-count-befo.patch pci-hv-fix-a-memory-leak-in-hv_eject_device_work.patch -include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch