(Apologies for the massive cross-post, but this is a matter that concerns
all architectures. For archs that don't have a maintainer listed in
MAINTAINERS I grabbed a random email address from arch/$arch/kernel/*.
If you're not the person to answer this for your $arch, please forward
to an appropriate person/list.)
As I mentioned in my email to l-k with subject '[PATCH][RFC] global
errno considered harmful' earlier today, having a global errno in the
kernel doesn't really make sense.
Referenced patch  deletes all mention of a global errno from the
kernel, fixes up a very small number of callers that were depending on
it, and fixes up the syscall helpers in include/asm-$arch/unistd.h not
to write an error code to errno in case of error anymore.
This subtly breaks userspace code that uses these helpers, but the general
consensus seems to be that userspace code shouldn't be touching these in
the first place. Patch  fixes up asm-$arch/unistd.h to only define
_syscallX in case __KERNEL_SYSCALLS__ is defined, to try and actively
break userspace (ab)users of this code (thanks to Ralf Baechle for
suggesting I should do something along these lines).
What I would like to know from each architecture team:
- What is your arch's policy on userspace usage of asm/unistd.h, and
consequently, what is your opinion on the goal these patches
- Are the changes I made in  and  for your $arch technically
Please CC me on replies as I'm not on any of the lists posted to.
My intention is to push these to Linus for 2.5 if everyone agrees.
They're probably too intrusive for 2.4 (although I'd love people
to convince me otherwise).