Re: [PATCH v2 1/4] alpha/uapi: do not expose kernel-only stack frame structures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 31 Jan 2025, Ivan Kokshaysky wrote:

> Parts of asm/ptrace.h went into UAPI with commit 96433f6ee490
> ("UAPI: (Scripted) Disintegrate arch/alpha/include/asm") back in 2012.
> At first glance it looked correct, as many other architectures expose
> 'struct pt_regs' for ptrace(2) PTRACE_GETREGS/PTRACE_SETREGS requests
> and bpf(2) BPF_PROG_TYPE_KPROBE/BPF_PROG_TYPE_PERF_EVENT program
> types.
> 
> On Alpha, however, these requests have never been implemented;
> 'struct pt_regs' describes internal kernel stack frame which has
> nothing to do with userspace. Same applies to 'struct switch_stack',
> as PTRACE_GETFPREG/PTRACE_SETFPREG are not implemented either.

 I note that we, unusually, neither save nor even have room for statics in 
`struct pt_regs', so this structure by itself is unsuitable to pass the 
register file around with tracing calls and the like.  So it seems to me 
there's no point in exporting `struct pt_regs' in any way to the userland.

 What do you think about providing arch/alpha/include/asm/bpf_perf_event.h 
instead with either a dummy definition of `bpf_user_pt_regs_t', or perhaps 
one typedef'd to `struct sigcontext' (as it seems to provide all that's 
needed), and then reverting to v1 of arch/alpha/include/uapi/asm/ptrace.h 
(and then just copying the contents of arch/alpha/include/asm/ftrace.h 
over rather than leaving all the useless CPP stuff in) so that we don't 
have useless `struct pt_regs' exported at all?

> Move this stuff back into internal asm, where we can ajust it

s/ajust/adjust/ (NB scripts/checkpatch.pl does complain about it).

  Maciej




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux