Re: sizeof (siginfo_t) problem

Ulrich Weigand (Ulrich.Weigand@de.ibm.com)
Mon, 14 Jul 2003 20:31:34 +0200


Jakub Jelinek wrote:

>I have noticed this on s390x in a different place:
>MD_FALLBACK_FRAME_STATE_FOR in gcc, in order to unwind through
>signal frames, needs to locate ucontext, and looking at
>stack pointer + 8 + sizeof(siginfo_t) (which works on s390 32-bit)
>did not work at all, everything was shifted by 8 bytes.

The MD_FALLBACK_FRAME_STATE_FOR macro does not use sizeof(siginfo_t)
at all, but hardcodes 128. (This has always been the case, and was
done to avoid the need to include signal.h.) This is still broken
with the current kernel behaviour, though.

It is strange that I didn't notice the problem earlier; apparently
most of the places where unwinding through signal frames is required
use non-RT frames ...

>This though means that the kernel siginfo_t change cannot be done
>just in asm-*/siginfo.h headers - at least places where siginfo_t
>is present within some structures ever visible to userland a dummy
>8 byte pad needs to be inserted.

As userspace expects a size of 128 bytes, and with the change
the size now *is* 128 bytes, why would a pad be required?

Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design & Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: Ulrich.Weigand@de.ibm.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/