Re: [PATCH v2] MIPS: Fix MAX_REG_OFFSET and remove zero-length struct member
From: Maciej W. Rozycki
Date: Fri Apr 18 2025 - 08:44:43 EST
On Fri, 18 Apr 2025, Thorsten Blum wrote:
> > Though the fix is incorrect for CPU_CAVIUM_OCTEON, because it doesn't
> > allow one to access the second half of the last register, and I find it
> > exceedingly complex anyway. Just:
> >
> > #define MAX_REG_OFFSET \
> > (offsetof(struct pt_regs, __last) - sizeof(unsigned long))
> >
> > will do (as `regs_get_register' operates on `unsigned long' quantities).
>
> Does regs_get_register() even work for CPU_CAVIUM_OCTEON when accessing
> the last two registers because they're both ULL, not UL? (independent of
> my patch)
Or rather two arrays of registers. With 32-bit configurations their
contents have to be retrieved by pieces. I don't know if it's handled by
the caller(s) though as I'm not familiar with this interface.
Maciej