On 8/1/2025 2:53 PM, Heiko Carstens wrote: > On Thu, Jul 10, 2025 at 06:35:17PM +0200, Jens Remus wrote:
>> +static inline void __s390_get_dwarf_fpr(unsigned long *val, int regnum) >> +{ >> + switch (regnum) { >> + case 16: >> + fpu_std(0, (freg_t *)val); >> + break; > > ... > >> +static inline int s390_unwind_user_get_reg(unsigned long *val, int regnum) >> +{ >> + if (0 <= regnum && regnum <= 15) { >> + struct pt_regs *regs = task_pt_regs(current); >> + *val = regs->gprs[regnum]; >> + } else if (16 <= regnum && regnum <= 31) { >> + __s390_get_dwarf_fpr(val, regnum); > > This won't work with other potential in-kernel fpu users. User space fpr > contents may have been written to the current task's fpu save area and fprs > may have been clobbered by in-kernel users; so you need to get register > contents from the correct location. See arch/s390/include/asm/fpu.h. Thanks! Will implement all the review feedback and send a RFC V2 once I am back from vacation. Will be away from keyboard for a few weeks. Regards, Jens -- Jens Remus Linux on Z Development (D3303) +49-7031-16-1128 Office jre...@de.ibm.com IBM IBM Deutschland Research & Development GmbH; Vorsitzender des Aufsichtsrats: Wolfgang Wendt; Geschäftsführung: David Faller; Sitz der Gesellschaft: Böblingen; Registergericht: Amtsgericht Stuttgart, HRB 243294 IBM Data Privacy Statement: https://www.ibm.com/privacy/