> > While restoring from the user, kernel also need to find out what layout
> > the user is passing. So it's bi-directional. I prefer the same mechanism
> > (using cookies/magic numbers etc inaddition to uc_flags or cpuid checks) to
> > interpret the fpstate for both user/kernel.
> > No, it really doesn't: the kernel only needs to be able to read the same > format as it itself wrote.
The kernel needs to accept one(*) of the formats it can produce, which
is not necessarily what it last produced. It's not inconceivable that
user-space will construct sigframes on the fly (to emulate setcontext),
or that it will mangle sigframes (e.g. to map non-rt to rt before sigreturn).
(*) The format is determined by which version of sys_sigreturn the
user invokes.