[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250411210815.GAZ_mEv8riLWzvERYY@renoirsky.local>
Date: Fri, 11 Apr 2025 23:08:15 +0200
From: Borislav Petkov <bp@...en8.de>
To: linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...nel.org>
Cc: linux-tip-commits@...r.kernel.org, Paul Menzel <pmenzel@...gen.mpg.de>,
Uros Bizjak <ubizjak@...il.com>, x86@...nel.org
Subject: Re: [tip: core/urgent] compiler.h: Avoid the usage of
__typeof_unqual__() when __GENKSYMS__ is defined
On Thu, Apr 10, 2025 at 10:58:46AM -0000, tip-bot2 for Uros Bizjak wrote:
> The following commit has been merged into the core/urgent branch of tip:
>
> Commit-ID: e696e5a114b59035f5a889d5484fedec4f40c1f3
> Gitweb: https://git.kernel.org/tip/e696e5a114b59035f5a889d5484fedec4f40c1f3
> Author: Uros Bizjak <ubizjak@...il.com>
> AuthorDate: Fri, 04 Apr 2025 12:24:37 +02:00
> Committer: Borislav Petkov (AMD) <bp@...en8.de>
> CommitterDate: Thu, 10 Apr 2025 12:44:27 +02:00
>
> compiler.h: Avoid the usage of __typeof_unqual__() when __GENKSYMS__ is defined
>
> Current version of genksyms doesn't know anything about __typeof_unqual__()
> operator. Avoid the usage of __typeof_unqual__() with genksyms to prevent
> errors when symbols are versioned.
>
> There were no problems with gendwarfksyms.
>
> Fixes: ac053946f5c40 ("compiler.h: introduce TYPEOF_UNQUAL() macro")
> Closes: https://lore.kernel.org/lkml/81a25a60-de78-43fb-b56a-131151e1c035@molgen.mpg.de/
> Reported-by: Paul Menzel <pmenzel@...gen.mpg.de>
> Signed-off-by: Uros Bizjak <ubizjak@...il.com>
> Signed-off-by: Borislav Petkov (AMD) <bp@...en8.de>
> Tested-by: Paul Menzel <pmenzel@...gen.mpg.de>
> Link: https://lore.kernel.org/r/20250404102535.705090-1-ubizjak@gmail.com
> ---
> include/linux/compiler.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/compiler.h b/include/linux/compiler.h
> index 27725f1..98057f9 100644
> --- a/include/linux/compiler.h
> +++ b/include/linux/compiler.h
> @@ -229,10 +229,10 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
> /*
> * Use __typeof_unqual__() when available.
> *
> - * XXX: Remove test for __CHECKER__ once
> - * sparse learns about __typeof_unqual__().
> + * XXX: Remove test for __GENKSYMS__ once "genksyms" handles
> + * __typeof_unqual__(), and test for __CHECKER__ once "sparse" handles it.
> */
> -#if CC_HAS_TYPEOF_UNQUAL && !defined(__CHECKER__)
> +#if CC_HAS_TYPEOF_UNQUAL && !defined(__GENKSYMS__) && !defined(__CHECKER__)
> # define USE_TYPEOF_UNQUAL 1
> #endif
So mingo is right - this is not really a fix but a brown-paper bag of
sorts.
The right thing to do here is to unpatch the __typeof_unqual__ stuff
until all the fallout from it - genksyms and whatever else - has been
fixed properly.
So to avoid too much churn I's suggest something like this (totally untested
ofc) until all has been fixed.
---
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 27725f1ab5ab..916a97999ddb 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -232,11 +232,9 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
* XXX: Remove test for __CHECKER__ once
* sparse learns about __typeof_unqual__().
*/
-#if CC_HAS_TYPEOF_UNQUAL && !defined(__CHECKER__)
-# define USE_TYPEOF_UNQUAL 1
-#endif
+#undef USE_TYPEOF_UNQUAL
-/*
+ /*
* Define TYPEOF_UNQUAL() to use __typeof_unqual__() as typeof
* operator when available, to return an unqualified type of the exp.
*/
Powered by blists - more mailing lists