Re: [PATCH 2/2] riscv: ptrace: Improve the style in NT_PRFPREG regset handling

From: Palmer Dabbelt
Date: Tue Aug 04 2020 - 22:01:33 EST


On Thu, 23 Jul 2020 16:22:30 PDT (-0700), macro@xxxxxxx wrote:
Use an auxiliary variable for the size taken by floating point general
registers in `struct __riscv_d_ext_state' to improve the readability of
code in the `riscv_fpr_get' and `riscv_fpr_set' handlers, by avoiding
excessive line wrapping and extending beyond 80 columns. Also shuffle
local variables in the reverse Christmas tree order. No functional
change.

Signed-off-by: Maciej W. Rozycki <macro@xxxxxxx>
---
arch/riscv/kernel/ptrace.c | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)

linux-riscv-ptrace-fpr-style.diff
Index: linux-hv/arch/riscv/kernel/ptrace.c
===================================================================
--- linux-hv.orig/arch/riscv/kernel/ptrace.c
+++ linux-hv/arch/riscv/kernel/ptrace.c
@@ -58,18 +58,16 @@ static int riscv_fpr_get(struct task_str
unsigned int pos, unsigned int count,
void *kbuf, void __user *ubuf)
{
- int ret;
+ const size_t fgr_size = offsetof(struct __riscv_d_ext_state, fcsr);
struct __riscv_d_ext_state *fstate = &target->thread.fstate;
+ int ret;

ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &fstate->f, 0,
- offsetof(struct __riscv_d_ext_state, fcsr));
+ fgr_size);
if (!ret) {
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
- &fstate->fcsr,
- offsetof(struct __riscv_d_ext_state,
- fcsr),
- offsetof(struct __riscv_d_ext_state, fcsr) +
- sizeof(fstate->fcsr));
+ &fstate->fcsr, fgr_size,
+ fgr_size + sizeof(fstate->fcsr));
}

return ret;
@@ -80,18 +78,16 @@ static int riscv_fpr_set(struct task_str
unsigned int pos, unsigned int count,
const void *kbuf, const void __user *ubuf)
{
- int ret;
+ const size_t fgr_size = offsetof(struct __riscv_d_ext_state, fcsr);
struct __riscv_d_ext_state *fstate = &target->thread.fstate;
+ int ret;

ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &fstate->f, 0,
- offsetof(struct __riscv_d_ext_state, fcsr));
+ fgr_size);
if (!ret) {
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
- &fstate->fcsr,
- offsetof(struct __riscv_d_ext_state,
- fcsr),
- offsetof(struct __riscv_d_ext_state, fcsr) +
- sizeof(fstate->fcsr));
+ &fstate->fcsr, fgr_size,
+ fgr_size + sizeof(fstate->fcsr));
}

return ret;

Reviewed-by: Palmer Dabbelt <palmerdabbelt@xxxxxxxxxx>

(Though the comments in the first patch apply here)

Thanks!