On 02/24/2015 04:25 PM, Arnd Bergmann wrote: > On Tuesday 24 February 2015 12:28:41 Ezequiel Garcia wrote: >> >> Gah, no, you are right. I got confused. >> >> So it would be OK to avoid remove pt_regs from the uapi headers? >> How does this affect the signal handling nios2 implementation? >> > > We have a number of architectures that don't provide this structure: > > $ git grep -L pt_regs arch/*/include/uapi/asm/ptrace.h > arch/frv/include/uapi/asm/ptrace.h > arch/metag/include/uapi/asm/ptrace.h > arch/openrisc/include/uapi/asm/ptrace.h > arch/s390/include/uapi/asm/ptrace.h > > so I'd assume it's ok in general not to have it. However, on > nios2, struct pt_regs is embedded inside of struct sigcontext. > If I read the code in arch/nios2/kernel/signal.c correctly, > this is actually a bug and you should use a different structure > there too, because pt_regs does not match the layout of the > stack either. This means that the (rare) user programs that > would know about the architecture to modify signal stacks > are currently broken. > /me is more confused now In arch/nios2/include/asm/ucontext.h struct ucontext { unsigned long uc_flags; struct ucontext *uc_link; stack_t uc_stack; struct mcontext uc_mcontext; sigset_t uc_sigmask; }; And in include/uapi/asm-generic/ucontext.h: struct ucontext { unsigned long uc_flags; struct ucontext *uc_link; stack_t uc_stack; struct sigcontext uc_mcontext; sigset_t uc_sigmask; }; Which one is the one that userspace sees? And why does the kernel has two different structures? Given this oddities, I'm wondering how troublesome would be to just re-do this and break the ptrace and signal ABI. For instance, just pushing pt_regs in PTRACE_GETREGSET would make things much clearer. I guess Linus would burn me for even suggesting to breaking users... but do we have any users at all? This arch has just been mainlined. Altera's out-of-tree is already ABI-incompatible with mainline so that's not an issue. The only one using this ABI is gdb, which is easily fixed. -- Ezequiel Garcia, VanguardiaSur www.vanguardiasur.com.ar -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html