Re: [PATCH v3] gcov: fix when CONFIG_MODULES is not set
On Wed, Apr 3, 2019 at 8:27 AM Matthew Wilcox wrote: > > On Tue, Apr 02, 2019 at 10:09:56AM +0700, tr...@android.com wrote: > > From: Tri Vo > > > > Fixes: 8c3d220cb6b5 ("gcov: clang support") > > I think this is the wrong fix. Why not simply: I spoke with Tri quickly about this proposal and we agree it's a better fix. Andrew, would you mind dropping: https://ozlabs.org/~akpm/mmotm/broken-out/gcov-clang-support-fix.patch ? Matthew, would you please send that patch with a commit message? Or if you would prefer us to send with your suggested-by tag, we can do that, too. Whichever you prefer, please let me know. Thanks for the suggestion. > > +++ b/include/linux/module.h > @@ -709,6 +709,11 @@ static inline bool is_module_text_address(unsigned long > addr) > return false; > } > > +static inline bool within_module(unsigned long addr, const struct module > *mod) > +{ > + return false; > +} > + > /* Get/put a kernel symbol (calls should be symmetric) */ > #define symbol_get(x) ({ extern typeof(x) x __attribute__((weak)); &(x); }) > #define symbol_put(x) do { } while (0) > -- Thanks, ~Nick Desaulniers
Re: [PATCH v3] gcov: fix when CONFIG_MODULES is not set
On Tue, Apr 02, 2019 at 10:09:56AM +0700, tr...@android.com wrote: > From: Tri Vo > > Fixes: 8c3d220cb6b5 ("gcov: clang support") I think this is the wrong fix. Why not simply: +++ b/include/linux/module.h @@ -709,6 +709,11 @@ static inline bool is_module_text_address(unsigned long addr) return false; } +static inline bool within_module(unsigned long addr, const struct module *mod) +{ + return false; +} + /* Get/put a kernel symbol (calls should be symmetric) */ #define symbol_get(x) ({ extern typeof(x) x __attribute__((weak)); &(x); }) #define symbol_put(x) do { } while (0)
Re: [PATCH v3] gcov: fix when CONFIG_MODULES is not set
On 4/1/19 8:09 PM, tr...@android.com wrote: > From: Tri Vo > > Fixes: 8c3d220cb6b5 ("gcov: clang support") > > Cc: Greg Hackmann > Cc: Peter Oberparleiter > Cc: linux...@kvack.org > Cc: kbuild-...@01.org > Reported-by: Randy Dunlap > Reported-by: kbuild test robot > Link: https://marc.info/?l=linux-mm&m=155384681109231&w=2 > Signed-off-by: Nick Desaulniers > Signed-off-by: Tri Vo Acked-by: Randy Dunlap # build-tested Thanks. > --- > kernel/gcov/clang.c | 4 > kernel/gcov/gcc_3_4.c | 4 > kernel/gcov/gcc_4_7.c | 4 > 3 files changed, 12 insertions(+) > > diff --git a/kernel/gcov/clang.c b/kernel/gcov/clang.c > index 125c50397ba2..cfb9ce5e0fed 100644 > --- a/kernel/gcov/clang.c > +++ b/kernel/gcov/clang.c > @@ -223,7 +223,11 @@ void gcov_info_unlink(struct gcov_info *prev, struct > gcov_info *info) > */ > bool gcov_info_within_module(struct gcov_info *info, struct module *mod) > { > +#ifdef CONFIG_MODULES > return within_module((unsigned long)info->filename, mod); > +#else > + return false; > +#endif > } > > /* Symbolic links to be created for each profiling data file. */ > diff --git a/kernel/gcov/gcc_3_4.c b/kernel/gcov/gcc_3_4.c > index 801ee4b0b969..8fc30f178351 100644 > --- a/kernel/gcov/gcc_3_4.c > +++ b/kernel/gcov/gcc_3_4.c > @@ -146,7 +146,11 @@ void gcov_info_unlink(struct gcov_info *prev, struct > gcov_info *info) > */ > bool gcov_info_within_module(struct gcov_info *info, struct module *mod) > { > +#ifdef CONFIG_MODULES > return within_module((unsigned long)info, mod); > +#else > + return false; > +#endif > } > > /* Symbolic links to be created for each profiling data file. */ > diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c > index ec37563674d6..0b6886d4a4dd 100644 > --- a/kernel/gcov/gcc_4_7.c > +++ b/kernel/gcov/gcc_4_7.c > @@ -159,7 +159,11 @@ void gcov_info_unlink(struct gcov_info *prev, struct > gcov_info *info) > */ > bool gcov_info_within_module(struct gcov_info *info, struct module *mod) > { > +#ifdef CONFIG_MODULES > return within_module((unsigned long)info, mod); > +#else > + return false; > +#endif > } > > /* Symbolic links to be created for each profiling data file. */ > -- ~Randy
[PATCH v3] gcov: fix when CONFIG_MODULES is not set
From: Tri Vo Fixes: 8c3d220cb6b5 ("gcov: clang support") Cc: Greg Hackmann Cc: Peter Oberparleiter Cc: linux...@kvack.org Cc: kbuild-...@01.org Reported-by: Randy Dunlap Reported-by: kbuild test robot Link: https://marc.info/?l=linux-mm&m=155384681109231&w=2 Signed-off-by: Nick Desaulniers Signed-off-by: Tri Vo --- kernel/gcov/clang.c | 4 kernel/gcov/gcc_3_4.c | 4 kernel/gcov/gcc_4_7.c | 4 3 files changed, 12 insertions(+) diff --git a/kernel/gcov/clang.c b/kernel/gcov/clang.c index 125c50397ba2..cfb9ce5e0fed 100644 --- a/kernel/gcov/clang.c +++ b/kernel/gcov/clang.c @@ -223,7 +223,11 @@ void gcov_info_unlink(struct gcov_info *prev, struct gcov_info *info) */ bool gcov_info_within_module(struct gcov_info *info, struct module *mod) { +#ifdef CONFIG_MODULES return within_module((unsigned long)info->filename, mod); +#else + return false; +#endif } /* Symbolic links to be created for each profiling data file. */ diff --git a/kernel/gcov/gcc_3_4.c b/kernel/gcov/gcc_3_4.c index 801ee4b0b969..8fc30f178351 100644 --- a/kernel/gcov/gcc_3_4.c +++ b/kernel/gcov/gcc_3_4.c @@ -146,7 +146,11 @@ void gcov_info_unlink(struct gcov_info *prev, struct gcov_info *info) */ bool gcov_info_within_module(struct gcov_info *info, struct module *mod) { +#ifdef CONFIG_MODULES return within_module((unsigned long)info, mod); +#else + return false; +#endif } /* Symbolic links to be created for each profiling data file. */ diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c index ec37563674d6..0b6886d4a4dd 100644 --- a/kernel/gcov/gcc_4_7.c +++ b/kernel/gcov/gcc_4_7.c @@ -159,7 +159,11 @@ void gcov_info_unlink(struct gcov_info *prev, struct gcov_info *info) */ bool gcov_info_within_module(struct gcov_info *info, struct module *mod) { +#ifdef CONFIG_MODULES return within_module((unsigned long)info, mod); +#else + return false; +#endif } /* Symbolic links to be created for each profiling data file. */ -- 2.21.0.392.gf8f6787159e-goog