From: "tip-bot2 for YingChi Long" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: YingChi Long <me@inclyc.cn>, Borislav Petkov <bp@suse.de>,
Nick Desaulniers <ndesaulniers@google.com>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: x86/fpu] x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN
Date: Tue, 22 Nov 2022 16:26:41 -0000 [thread overview]
Message-ID: <166913440179.4906.11745141572917292511.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20220925153151.2467884-1-me@inclyc.cn>
The following commit has been merged into the x86/fpu branch of tip:
Commit-ID: 55228db2697c09abddcb9487c3d9fa5854a932cd
Gitweb: https://git.kernel.org/tip/55228db2697c09abddcb9487c3d9fa5854a932cd
Author: YingChi Long <me@inclyc.cn>
AuthorDate: Fri, 18 Nov 2022 08:55:35 +08:00
Committer: Borislav Petkov <bp@suse.de>
CommitterDate: Tue, 22 Nov 2022 17:13:03 +01:00
x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN
WG14 N2350 specifies that it is an undefined behavior to have type
definitions within offsetof", see
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm
This specification is also part of C23.
Therefore, replace the TYPE_ALIGN macro with the _Alignof builtin to
avoid undefined behavior. (_Alignof itself is C11 and the kernel is
built with -gnu11).
ISO C11 _Alignof is subtly different from the GNU C extension
__alignof__. Latter is the preferred alignment and _Alignof the
minimal alignment. For long long on x86 these are 8 and 4
respectively.
The macro TYPE_ALIGN's behavior matches _Alignof rather than
__alignof__.
[ bp: Massage commit message. ]
Signed-off-by: YingChi Long <me@inclyc.cn>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Link: https://lore.kernel.org/r/20220925153151.2467884-1-me@inclyc.cn
---
arch/x86/kernel/fpu/init.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
index 8946f89..851eb13 100644
--- a/arch/x86/kernel/fpu/init.c
+++ b/arch/x86/kernel/fpu/init.c
@@ -133,9 +133,6 @@ static void __init fpu__init_system_generic(void)
fpu__init_system_mxcsr();
}
-/* Get alignment of the TYPE. */
-#define TYPE_ALIGN(TYPE) offsetof(struct { char x; TYPE test; }, test)
-
/*
* Enforce that 'MEMBER' is the last field of 'TYPE'.
*
@@ -143,8 +140,8 @@ static void __init fpu__init_system_generic(void)
* because that's how C aligns structs.
*/
#define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
- BUILD_BUG_ON(sizeof(TYPE) != ALIGN(offsetofend(TYPE, MEMBER), \
- TYPE_ALIGN(TYPE)))
+ BUILD_BUG_ON(sizeof(TYPE) != \
+ ALIGN(offsetofend(TYPE, MEMBER), _Alignof(TYPE)))
/*
* We append the 'struct fpu' to the task_struct:
prev parent reply other threads:[~2022-11-22 16:26 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-25 15:31 [PATCH] x86/fpu: use __alignof__ to avoid UB " YingChi Long
2022-09-26 9:01 ` Peter Zijlstra
2022-09-26 13:18 ` YingChi Long
2022-09-26 19:02 ` Nick Desaulniers
2022-09-27 8:20 ` David Laight
2022-09-27 15:33 ` [PATCH v2] x86/fpu: use _Alignof " YingChi Long
2022-09-27 15:58 ` David Laight
2022-09-27 16:44 ` YingChi Long
2022-09-27 17:07 ` YingChi Long
2022-09-28 8:09 ` David Laight
2022-09-28 11:23 ` YingChi Long
2022-10-05 7:29 ` YingChi Long
2022-10-05 18:30 ` Nick Desaulniers
2022-10-05 18:38 ` Nick Desaulniers
2022-10-05 18:57 ` Nick Desaulniers
2022-10-06 8:12 ` David Laight
2022-10-06 14:14 ` [PATCH v3] " YingChi Long
2022-10-06 17:34 ` Nick Desaulniers
2022-10-18 0:52 ` YingChi Long
2022-10-29 12:25 ` [PATCH RESEND " YingChi Long
2022-10-31 18:29 ` Nick Desaulniers
2022-11-02 16:55 ` Borislav Petkov
2022-11-02 18:07 ` YingChi Long
2022-11-02 18:14 ` [PATCH v4] " YingChi Long
2022-11-02 21:41 ` [PATCH RESEND v3] " David Laight
2022-11-18 0:55 ` [PATCH RESEND v4] " Yingchi Long
2022-11-22 16:26 ` tip-bot2 for YingChi Long [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=166913440179.4906.11745141572917292511.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=bp@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=me@inclyc.cn \
--cc=ndesaulniers@google.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®