Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1679206 > unrolled thread

[PATCH] kbuild: modpost: Warn about references from rodata to __init text

Started byStephen Boyd <sboyd@codeaurora.org>
First post2017-07-01 01:00 +0200
Last post2017-07-01 02:00 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] kbuild: modpost: Warn about references from rodata to __init text Stephen Boyd <sboyd@codeaurora.org> - 2017-07-01 01:00 +0200
    Re: [PATCH] kbuild: modpost: Warn about references from rodata to  __init text Rob Clark <robdclark@gmail.com> - 2017-07-01 02:00 +0200

#1679206 — [PATCH] kbuild: modpost: Warn about references from rodata to __init text

FromStephen Boyd <sboyd@codeaurora.org>
Date2017-07-01 01:00 +0200
Subject[PATCH] kbuild: modpost: Warn about references from rodata to __init text
Message-ID<tYd3j-30T-3@gated-at.bofh.it>
If we have a structure that's marked const it will be placed
into the .rodata section but it could reference an init section
function. Include the read only data section in the check we have
for read/write data sections referencing init sections so we can
find this class of problems. This exposes quite a few places
where const marked structures are referencing __init functions and
__init data that we were previously ignoring.

Cc: Rob Clark <robdclark@gmail.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---

Making this change leads to quite a few other errors even on the
multi_v7_defconfig for ARM[1]. I still need to do a build of the
allmodconfig to see how many other errors there, but it seems to
be quite a few. I suppose those will need to be fixed before we can
merge this?

[1] https://www.irccloud.com/pastebin/zzqfWGQY/

 scripts/mod/modpost.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 48397feb08fb..4f2be5c6727d 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -903,7 +903,7 @@ static void check_section(const char *modname, struct elf_info *elf,
 #define ALL_INIT_SECTIONS INIT_SECTIONS, ALL_XXXINIT_SECTIONS
 #define ALL_EXIT_SECTIONS EXIT_SECTIONS, ALL_XXXEXIT_SECTIONS
 
-#define DATA_SECTIONS ".data", ".data.rel"
+#define DATA_SECTIONS ".rodata", ".data", ".data.rel"
 #define TEXT_SECTIONS ".text", ".text.unlikely", ".sched.text", \
 		".kprobes.text", ".cpuidle.text"
 #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

[toc] | [next] | [standalone]


#1679216 — Re: [PATCH] kbuild: modpost: Warn about references from rodata to __init text

FromRob Clark <robdclark@gmail.com>
Date2017-07-01 02:00 +0200
SubjectRe: [PATCH] kbuild: modpost: Warn about references from rodata to __init text
Message-ID<tYdZn-3AK-1@gated-at.bofh.it>
In reply to#1679206
On Fri, Jun 30, 2017 at 6:58 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> If we have a structure that's marked const it will be placed
> into the .rodata section but it could reference an init section
> function. Include the read only data section in the check we have
> for read/write data sections referencing init sections so we can
> find this class of problems. This exposes quite a few places
> where const marked structures are referencing __init functions and
> __init data that we were previously ignoring.
>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---
>
> Making this change leads to quite a few other errors even on the
> multi_v7_defconfig for ARM[1]. I still need to do a build of the
> allmodconfig to see how many other errors there, but it seems to
> be quite a few. I suppose those will need to be fixed before we can
> merge this?

thanks.. the explosions you get with these mistakes when building
drivers as modules in a distro kernel config are quite "fun" to
debug..

I'm not quite sure about the rules for whether merging this would
count as a regression, but I would argue those drivers are already
broken, just no one noticed yet.  Similar to when a new gcc gets more
clever about detecting bugs.  So I wouldn't be against merging this
first to force drivers to fix their crap ;-)

BR,
-R

> [1] https://www.irccloud.com/pastebin/zzqfWGQY/
>
>  scripts/mod/modpost.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index 48397feb08fb..4f2be5c6727d 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -903,7 +903,7 @@ static void check_section(const char *modname, struct elf_info *elf,
>  #define ALL_INIT_SECTIONS INIT_SECTIONS, ALL_XXXINIT_SECTIONS
>  #define ALL_EXIT_SECTIONS EXIT_SECTIONS, ALL_XXXEXIT_SECTIONS
>
> -#define DATA_SECTIONS ".data", ".data.rel"
> +#define DATA_SECTIONS ".rodata", ".data", ".data.rel"
>  #define TEXT_SECTIONS ".text", ".text.unlikely", ".sched.text", \
>                 ".kprobes.text", ".cpuidle.text"
>  #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web