Linux SCSI subsystem development
 help / color / mirror / Atom feed
* [PATCH] scsi: ufs: Fix the build for gcc 9 and before
@ 2023-08-01 20:13 Bart Van Assche
  2023-08-01 21:52 ` Nathan Chancellor
  0 siblings, 1 reply; 3+ messages in thread
From: Bart Van Assche @ 2023-08-01 20:13 UTC (permalink / raw)
  To: Martin K . Petersen
  Cc: linux-scsi, Bart Van Assche, Arnd Bergmann, Naresh Kamboju,
	James E.J. Bottomley, Stanley Chu, Avri Altman, Bean Huo,
	Asutosh Das, Bao D. Nguyen, Arthur Simchaev, Can Guo

gcc compilers before version 10 cannot do constant-folding for sub-byte
bitfields. This makes the compiler layout tests fail. Hence skip the
layout checks for gcc 9 and before.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 drivers/ufs/core/ufshcd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 23335aaa6a66..875c860bcc05 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -10564,6 +10564,15 @@ static const struct dev_pm_ops ufshcd_wl_pm_ops = {
 
 static void ufshcd_check_header_layout(void)
 {
+#if defined(__GNUC__) && __GNUC__ -0 < 10
+	/*
+	 * gcc compilers before version 10 cannot do constant-folding for
+	 * sub-byte bitfields. Hence skip the layout checks for gcc 9 and
+	 * before.
+	 */
+	return;
+#endif
+
 	BUILD_BUG_ON(((u8 *)&(struct request_desc_header){
 				.cci = 3})[0] != 3);
 

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-08-01 23:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-01 20:13 [PATCH] scsi: ufs: Fix the build for gcc 9 and before Bart Van Assche
2023-08-01 21:52 ` Nathan Chancellor
2023-08-01 23:23   ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox