* [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