* [PATCH] riscv: ptrace: avoid BIT() in UAPI header
@ 2026-03-30 2:42 Michael Neuling
2026-03-30 3:05 ` Michael Neuling
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Michael Neuling @ 2026-03-30 2:42 UTC (permalink / raw)
To: pjw, palmer, aou
Cc: alex, debug, thecharlesjenkins, linux-riscv, linux-kernel, mikey
BIT() is not available in UAPI headers — the installed linux/bits.h
(UAPI version) does not define it. Replace BIT() with open-coded
(1UL << x) which is the standard practice for UAPI headers, and drop
the linux/bits.h include that was added by commit 98545620b0 ("riscv:
ptrace: Fix BIT() compilation issues").
Fixes: 98545620b0 ("riscv: ptrace: Fix BIT() compilation issues")
Signed-off-by: Michael Neuling <mikey@neuling.org>
Assisted-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---
arch/riscv/include/uapi/asm/ptrace.h | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/arch/riscv/include/uapi/asm/ptrace.h b/arch/riscv/include/uapi/asm/ptrace.h
index 5b53cea143..7cbd558b9b 100644
--- a/arch/riscv/include/uapi/asm/ptrace.h
+++ b/arch/riscv/include/uapi/asm/ptrace.h
@@ -8,7 +8,6 @@
#ifndef __ASSEMBLER__
-#include <linux/bits.h>
#include <linux/types.h>
#define PTRACE_GETFDPIC 33
@@ -139,12 +138,12 @@ struct __sc_riscv_cfi_state {
#define PTRACE_CFI_SS_LOCK_BIT 4
#define PTRACE_CFI_SS_PTR_BIT 5
-#define PTRACE_CFI_LP_EN_STATE BIT(PTRACE_CFI_LP_EN_BIT)
-#define PTRACE_CFI_LP_LOCK_STATE BIT(PTRACE_CFI_LP_LOCK_BIT)
-#define PTRACE_CFI_ELP_STATE BIT(PTRACE_CFI_ELP_BIT)
-#define PTRACE_CFI_SS_EN_STATE BIT(PTRACE_CFI_SS_EN_BIT)
-#define PTRACE_CFI_SS_LOCK_STATE BIT(PTRACE_CFI_SS_LOCK_BIT)
-#define PTRACE_CFI_SS_PTR_STATE BIT(PTRACE_CFI_SS_PTR_BIT)
+#define PTRACE_CFI_LP_EN_STATE (1UL << PTRACE_CFI_LP_EN_BIT)
+#define PTRACE_CFI_LP_LOCK_STATE (1UL << PTRACE_CFI_LP_LOCK_BIT)
+#define PTRACE_CFI_ELP_STATE (1UL << PTRACE_CFI_ELP_BIT)
+#define PTRACE_CFI_SS_EN_STATE (1UL << PTRACE_CFI_SS_EN_BIT)
+#define PTRACE_CFI_SS_LOCK_STATE (1UL << PTRACE_CFI_SS_LOCK_BIT)
+#define PTRACE_CFI_SS_PTR_STATE (1UL << PTRACE_CFI_SS_PTR_BIT)
#define PRACE_CFI_STATE_INVALID_MASK ~(PTRACE_CFI_LP_EN_STATE | \
PTRACE_CFI_LP_LOCK_STATE | \
--
2.43.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] riscv: ptrace: avoid BIT() in UAPI header 2026-03-30 2:42 [PATCH] riscv: ptrace: avoid BIT() in UAPI header Michael Neuling @ 2026-03-30 3:05 ` Michael Neuling 2026-03-30 8:16 ` Andreas Schwab 2026-04-03 8:06 ` patchwork-bot+linux-riscv 2 siblings, 0 replies; 5+ messages in thread From: Michael Neuling @ 2026-03-30 3:05 UTC (permalink / raw) To: pjw, palmer, aou Cc: alex, debug, thecharlesjenkins, linux-riscv, linux-kernel Paul, > Fixes: 98545620b0 ("riscv: ptrace: Fix BIT() compilation issues") This is fixing a patch in queued in the for-next branch. So this could be taken on top of that patch or merged with that patch to avoid the issue to start with but that would need for-next to be rebased. Mikey _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] riscv: ptrace: avoid BIT() in UAPI header 2026-03-30 2:42 [PATCH] riscv: ptrace: avoid BIT() in UAPI header Michael Neuling 2026-03-30 3:05 ` Michael Neuling @ 2026-03-30 8:16 ` Andreas Schwab 2026-04-03 7:56 ` Paul Walmsley 2026-04-03 8:06 ` patchwork-bot+linux-riscv 2 siblings, 1 reply; 5+ messages in thread From: Andreas Schwab @ 2026-03-30 8:16 UTC (permalink / raw) To: Michael Neuling Cc: pjw, palmer, aou, alex, debug, thecharlesjenkins, linux-riscv, linux-kernel On Mär 30 2026, Michael Neuling wrote: > BIT() is not available in UAPI headers — the installed linux/bits.h > (UAPI version) does not define it. Replace BIT() with open-coded > (1UL << x) which is the standard practice for UAPI headers, and drop > the linux/bits.h include that was added by commit 98545620b0 ("riscv: > ptrace: Fix BIT() compilation issues"). There is also the _BITUL macro, which may be preferable. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] riscv: ptrace: avoid BIT() in UAPI header 2026-03-30 8:16 ` Andreas Schwab @ 2026-04-03 7:56 ` Paul Walmsley 0 siblings, 0 replies; 5+ messages in thread From: Paul Walmsley @ 2026-04-03 7:56 UTC (permalink / raw) To: Andreas Schwab Cc: Michael Neuling, pjw, palmer, aou, alex, debug, thecharlesjenkins, linux-riscv, linux-kernel [-- Attachment #1: Type: text/plain, Size: 3775 bytes --] On Mon, 30 Mar 2026, Andreas Schwab wrote: > On Mär 30 2026, Michael Neuling wrote: > > > BIT() is not available in UAPI headers — the installed linux/bits.h > > (UAPI version) does not define it. Replace BIT() with open-coded > > (1UL << x) which is the standard practice for UAPI headers, and drop > > the linux/bits.h include that was added by commit 98545620b0 ("riscv: > > ptrace: Fix BIT() compilation issues"). > > There is also the _BITUL macro, which may be preferable. Thanks everyone. Below is what I ended up with. I'll drop Charlie's two patches to avoid churn. - Paul From: Paul Walmsley <pjw@kernel.org> Date: Thu, 2 Apr 2026 17:18:03 -0600 Subject: [PATCH] riscv: use _BITUL macro rather than BIT() in ptrace uapi and kselftests Fix the build of non-kernel code that includes the RISC-V ptrace uapi header, and the RISC-V validate_v_ptrace.c kselftest, by using the _BITUL() macro rather than BIT(). BIT() is not available outside the kernel. Based on patches and comments from Charlie Jenkins, Michael Neuling, and Andreas Schwab. Fixes: 30eb191c895b ("selftests: riscv: verify ptrace rejects invalid vector csr inputs") Fixes: 2af7c9cf021c ("riscv/ptrace: expose riscv CFI status and state via ptrace and in core files") Cc: Andreas Schwab <schwab@suse.de> Cc: Michael Neuling <mikey@neuling.org> Cc: Charlie Jenkins <thecharlesjenkins@gmail.com> Link: https://patch.msgid.link/20260330024248.449292-1-mikey@neuling.org Link: https://lore.kernel.org/linux-riscv/20260309-fix_selftests-v2-1-9d5a553a531e@gmail.com/ Link: https://lore.kernel.org/linux-riscv/20260309-fix_selftests-v2-3-9d5a553a531e@gmail.com/ Signed-off-by: Paul Walmsley <pjw@kernel.org> --- arch/riscv/include/uapi/asm/ptrace.h | 13 +++++++------ .../selftests/riscv/vector/validate_v_ptrace.c | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/arch/riscv/include/uapi/asm/ptrace.h b/arch/riscv/include/uapi/asm/ptrace.h index 18988a5f1a63..70a74adad914 100644 --- a/arch/riscv/include/uapi/asm/ptrace.h +++ b/arch/riscv/include/uapi/asm/ptrace.h @@ -9,6 +9,7 @@ #ifndef __ASSEMBLER__ #include <linux/types.h> +#include <linux/const.h> #define PTRACE_GETFDPIC 33 @@ -138,12 +139,12 @@ struct __sc_riscv_cfi_state { #define PTRACE_CFI_SS_LOCK_BIT 4 #define PTRACE_CFI_SS_PTR_BIT 5 -#define PTRACE_CFI_LP_EN_STATE BIT(PTRACE_CFI_LP_EN_BIT) -#define PTRACE_CFI_LP_LOCK_STATE BIT(PTRACE_CFI_LP_LOCK_BIT) -#define PTRACE_CFI_ELP_STATE BIT(PTRACE_CFI_ELP_BIT) -#define PTRACE_CFI_SS_EN_STATE BIT(PTRACE_CFI_SS_EN_BIT) -#define PTRACE_CFI_SS_LOCK_STATE BIT(PTRACE_CFI_SS_LOCK_BIT) -#define PTRACE_CFI_SS_PTR_STATE BIT(PTRACE_CFI_SS_PTR_BIT) +#define PTRACE_CFI_LP_EN_STATE _BITUL(PTRACE_CFI_LP_EN_BIT) +#define PTRACE_CFI_LP_LOCK_STATE _BITUL(PTRACE_CFI_LP_LOCK_BIT) +#define PTRACE_CFI_ELP_STATE _BITUL(PTRACE_CFI_ELP_BIT) +#define PTRACE_CFI_SS_EN_STATE _BITUL(PTRACE_CFI_SS_EN_BIT) +#define PTRACE_CFI_SS_LOCK_STATE _BITUL(PTRACE_CFI_SS_LOCK_BIT) +#define PTRACE_CFI_SS_PTR_STATE _BITUL(PTRACE_CFI_SS_PTR_BIT) #define PRACE_CFI_STATE_INVALID_MASK ~(PTRACE_CFI_LP_EN_STATE | \ PTRACE_CFI_LP_LOCK_STATE | \ diff --git a/tools/testing/selftests/riscv/vector/validate_v_ptrace.c b/tools/testing/selftests/riscv/vector/validate_v_ptrace.c index 3589549f7228..7ae6fede496f 100644 --- a/tools/testing/selftests/riscv/vector/validate_v_ptrace.c +++ b/tools/testing/selftests/riscv/vector/validate_v_ptrace.c @@ -346,8 +346,8 @@ FIXTURE_TEARDOWN(v_csr_invalid) { } -#define VECTOR_1_0 BIT(0) -#define XTHEAD_VECTOR_0_7 BIT(1) +#define VECTOR_1_0 _BITUL(0) +#define XTHEAD_VECTOR_0_7 _BITUL(1) #define vector_test(x) ((x) & VECTOR_1_0) #define xthead_test(x) ((x) & XTHEAD_VECTOR_0_7) -- 2.51.0 [-- Attachment #2: Type: text/plain, Size: 161 bytes --] _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] riscv: ptrace: avoid BIT() in UAPI header 2026-03-30 2:42 [PATCH] riscv: ptrace: avoid BIT() in UAPI header Michael Neuling 2026-03-30 3:05 ` Michael Neuling 2026-03-30 8:16 ` Andreas Schwab @ 2026-04-03 8:06 ` patchwork-bot+linux-riscv 2 siblings, 0 replies; 5+ messages in thread From: patchwork-bot+linux-riscv @ 2026-04-03 8:06 UTC (permalink / raw) To: Michael Neuling Cc: linux-riscv, pjw, palmer, aou, alex, debug, thecharlesjenkins, linux-kernel Hello: This patch was applied to riscv/linux.git (fixes) by Paul Walmsley <pjw@kernel.org>: On Mon, 30 Mar 2026 02:42:48 +0000 you wrote: > BIT() is not available in UAPI headers — the installed linux/bits.h > (UAPI version) does not define it. Replace BIT() with open-coded > (1UL << x) which is the standard practice for UAPI headers, and drop > the linux/bits.h include that was added by commit 98545620b0 ("riscv: > ptrace: Fix BIT() compilation issues"). > > Fixes: 98545620b0 ("riscv: ptrace: Fix BIT() compilation issues") > Signed-off-by: Michael Neuling <mikey@neuling.org> > Assisted-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> > > [...] Here is the summary with links: - riscv: ptrace: avoid BIT() in UAPI header https://git.kernel.org/riscv/c/640dc01a97f9 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-03 8:07 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-30 2:42 [PATCH] riscv: ptrace: avoid BIT() in UAPI header Michael Neuling 2026-03-30 3:05 ` Michael Neuling 2026-03-30 8:16 ` Andreas Schwab 2026-04-03 7:56 ` Paul Walmsley 2026-04-03 8:06 ` patchwork-bot+linux-riscv
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox