diff mbox series

[11/12] gcov: clang: fix clang-11+ build

Message ID 20210416224623.nZhisHrwM%akpm@linux-foundation.org (mailing list archive)
State New, archived
Headers show
Series [01/12] mm: eliminate "expecting prototype" kernel-doc warnings | expand

Commit Message

Andrew Morton April 16, 2021, 10:46 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>
Subject: gcov: clang: fix clang-11+ build

With clang-11+, the code is broken due to my kvmalloc() conversion (which
predated the clang-11 support code) leaving one vmalloc() in place.  Fix
that.

Link: https://lkml.kernel.org/r/20210412214210.6e1ecca9cdc5.I24459763acf0591d5e6b31c7e3a59890d802f79c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 kernel/gcov/clang.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Nathan Chancellor April 19, 2021, 9:36 p.m. UTC | #1
On Fri, Apr 16, 2021 at 03:46:23PM -0700, Andrew Morton wrote:
> From: Johannes Berg <johannes.berg@intel.com>
> Subject: gcov: clang: fix clang-11+ build
> 
> With clang-11+, the code is broken due to my kvmalloc() conversion (which
> predated the clang-11 support code) leaving one vmalloc() in place.  Fix
> that.
> 
> Link: https://lkml.kernel.org/r/20210412214210.6e1ecca9cdc5.I24459763acf0591d5e6b31c7e3a59890d802f79c@changeid
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
> Tested-by: Nick Desaulniers <ndesaulniers@google.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
> 
>  kernel/gcov/clang.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- a/kernel/gcov/clang.c~gcov-clang-fix-clang-11-build
> +++ a/kernel/gcov/clang.c
> @@ -369,7 +369,7 @@ static struct gcov_fn_info *gcov_fn_info
>  	INIT_LIST_HEAD(&fn_dup->head);
>  
>  	cv_size = fn->num_counters * sizeof(fn->counters[0]);
> -	fn_dup->counters = vmalloc(cv_size);
> +	fn_dup->counters = kvmalloc(cv_size, GFP_KERNEL);
>  	if (!fn_dup->counters) {
>  		kfree(fn_dup);
>  		return NULL;
> _

This should not have been merged into mainline by itself. It was a fix
for "gcov: use kvmalloc()", which is still in -mm/-next. Merging it
alone has now broken the build:

https://github.com/ClangBuiltLinux/continuous-integration2/runs/2384465683?check_suite_focus=true

Could it please be reverted in mainline then added as a fix patch for
the patch that is still in -mm:

https://www.ozlabs.org/~akpm/mmotm/broken-out/gcov-use-kvmalloc.patch

Cheers,
Nathan
Linus Torvalds April 19, 2021, 10:12 p.m. UTC | #2
On Mon, Apr 19, 2021 at 2:37 PM Nathan Chancellor <nathan@kernel.org> wrote:
>
> This should not have been merged into mainline by itself. It was a fix
> for "gcov: use kvmalloc()", which is still in -mm/-next. Merging it
> alone has now broken the build:
>
> https://github.com/ClangBuiltLinux/continuous-integration2/runs/2384465683?check_suite_focus=true
>
> Could it please be reverted in mainline [..]

Now reverted in my tree.

Sasha and stable cc'd too, since it was apparently auto-selected there..

           Linus
Sasha Levin April 20, 2021, 2:12 p.m. UTC | #3
On Mon, Apr 19, 2021 at 03:12:26PM -0700, Linus Torvalds wrote:
>On Mon, Apr 19, 2021 at 2:37 PM Nathan Chancellor <nathan@kernel.org> wrote:
>>
>> This should not have been merged into mainline by itself. It was a fix
>> for "gcov: use kvmalloc()", which is still in -mm/-next. Merging it
>> alone has now broken the build:
>>
>> https://github.com/ClangBuiltLinux/continuous-integration2/runs/2384465683?check_suite_focus=true
>>
>> Could it please be reverted in mainline [..]
>
>Now reverted in my tree.
>
>Sasha and stable cc'd too, since it was apparently auto-selected there..

I'll drop it from my queue, thanks!
diff mbox series

Patch

--- a/kernel/gcov/clang.c~gcov-clang-fix-clang-11-build
+++ a/kernel/gcov/clang.c
@@ -369,7 +369,7 @@  static struct gcov_fn_info *gcov_fn_info
 	INIT_LIST_HEAD(&fn_dup->head);
 
 	cv_size = fn->num_counters * sizeof(fn->counters[0]);
-	fn_dup->counters = vmalloc(cv_size);
+	fn_dup->counters = kvmalloc(cv_size, GFP_KERNEL);
 	if (!fn_dup->counters) {
 		kfree(fn_dup);
 		return NULL;