On Sat, 29 Apr 2023, Finn Thain wrote:
Anyway, I agree that stkadj would need to account for the gap, as you pointed out earlier.
OTOH, there is no allowance made for the gap already created here due to masking off the least significant bits of the address: static inline void __user * get_sigframe(struct ksignal *ksig, size_t frame_size) { unsigned long usp = sigsp(rdusp(), ksig); return (void __user *)((usp - frame_size) & -8UL); } Is that a bug? Shouldn't that gap be added to stkadj?