signal/sparc: Document a conflict with SI_USER with SIGFPE
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 17 Jul 2017 01:04:58 +0000 (20:04 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Thu, 20 Jul 2017 00:13:14 +0000 (19:13 -0500)
commitcc9f72e474a4da365896d0e528da324f205e8b31
treecda3b38a86ae57b171c6094a6ef405b17ac75260
parent80dce5e37493029e1fb7f890b960264ba9a46fe4
signal/sparc: Document a conflict with SI_USER with SIGFPE

Setting si_code to __SI_FAULT results in a userspace seeing
an si_code of 0.  This is the same si_code as SI_USER.  Posix
and common sense requires that SI_USER not be a signal specific
si_code.  As such this use of 0 for the si_code is a pretty
horribly broken ABI.

This was introduced in 2.3.41 so this mess has had a long time for
people to be able to start depending on it.

As this bug has existed for 17 years already I don't know if it is
worth fixing.  It is definitely worth documenting what is going
on so that no one decides to copy this bad decision.

Cc: "David S. Miller" <davem@davemloft.net>
Cc: sparclinux@vger.kernel.org
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
arch/sparc/include/uapi/asm/siginfo.h
arch/sparc/kernel/traps_32.c
arch/sparc/kernel/traps_64.c