From: "Miquel Sabaté Solà" <mikisabate@gmail.com>
To: linux-riscv@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, pjw@kernel.org,
palmer@dabbelt.com, alex@ghiti.fr, wangyuli@uniontech.com
Subject: Re: [PATCH] riscv: kgdb: Ensure that BUFMAX > NUMREGBYTES
Date: Mon, 29 Sep 2025 10:08:11 +0200 [thread overview]
Message-ID: <68da3e6d.050a0220.c13dc.0f9a@mx.google.com> (raw)
In-Reply-To: <20250915143252.154955-1-mikisabate@gmail.com> ("Miquel Sabaté Solà"'s message of "Mon, 15 Sep 2025 16:32:52 +0200")
[-- Attachment #1.1: Type: text/plain, Size: 2060 bytes --]
Miquel Sabaté Solà @ 2025-09-15 16:32 +02:
> The current value of BUFMAX is similar as in other architectures, but as
> per documentation on KGDB (see
> 'Documentation/process/debugging/kgdb.rst'), BUFMAX has to be larger
> than NUMREGBYTES.
>
> Some NUMREGBYTES architectures (e.g. powerpc or hexagon) actually define
> BUFMAX in relation to NUMREGBYTES, and thus this condition is always
> guaranteed. Since 2048 is a value that is generally accepted on all
> architectures, and that is larger than the current value of NUMREGBYTES,
> we can keep this value in arch/riscv, but we can at least add an
> 'static_assert' as an extra measure just in case NUMREGBYTES changes in
> the future for some unforseen reason.
>
> Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
> ---
> arch/riscv/include/asm/kgdb.h | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/arch/riscv/include/asm/kgdb.h b/arch/riscv/include/asm/kgdb.h
> index cc11c4544cff..66ff46e434fa 100644
> --- a/arch/riscv/include/asm/kgdb.h
> +++ b/arch/riscv/include/asm/kgdb.h
> @@ -3,14 +3,18 @@
> #ifndef __ASM_KGDB_H_
> #define __ASM_KGDB_H_
>
> +#include <linux/build_bug.h>
> +
> #ifdef __KERNEL__
>
> #define GDB_SIZEOF_REG sizeof(unsigned long)
>
> -#define DBG_MAX_REG_NUM (36)
> -#define NUMREGBYTES ((DBG_MAX_REG_NUM) * GDB_SIZEOF_REG)
> +#define DBG_MAX_REG_NUM 36
> +#define NUMREGBYTES (DBG_MAX_REG_NUM * GDB_SIZEOF_REG)
> #define CACHE_FLUSH_IS_SAFE 1
> #define BUFMAX 2048
> +static_assert(BUFMAX > NUMREGBYTES,
> + "As per KGDB documentation, BUFMAX must be larger than NUMREGBYTES");
> #ifdef CONFIG_RISCV_ISA_C
> #define BREAK_INSTR_SIZE 2
> #else
> @@ -97,6 +101,7 @@ extern unsigned long kgdb_compiled_break;
> #define DBG_REG_STATUS_OFF 33
> #define DBG_REG_BADADDR_OFF 34
> #define DBG_REG_CAUSE_OFF 35
> +/* NOTE: increase DBG_MAX_REG_NUM if you add more values here. */
>
> extern const char riscv_gdb_stub_feature[64];
Gentle ping :)
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 901 bytes --]
[-- 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
next prev parent reply other threads:[~2025-09-29 8:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-15 14:32 [PATCH] riscv: kgdb: Ensure that BUFMAX > NUMREGBYTES Miquel Sabaté Solà
2025-09-29 8:08 ` Miquel Sabaté Solà [this message]
2025-10-08 17:28 ` Paul Walmsley
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=68da3e6d.050a0220.c13dc.0f9a@mx.google.com \
--to=mikisabate@gmail.com \
--cc=alex@ghiti.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=wangyuli@uniontech.com \
/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