linux/arch
Jeff Dike b4fd310e16 [PATCH] uml: preserve errno in error paths
The poster child for this patch is the third tuntap_user hunk.  When an ioctl
fails, it properly closes the opened file descriptor and returns.  However,
the close resets errno to 0, and the 'return errno' that follows returns 0
rather than the value that ioctl set.  This caused the caller to believe that
the device open succeeded and had opened file descriptor 0, which caused no
end of interesting behavior.

The rest of this patch is a pass through the UML sources looking for places
where errno could be reset before being passed back out.  A common culprit is
printk, which could call write, being called before errno is returned.

In some cases, where the code ends up being much smaller, I just deleted the
printk.

There was another case where a caller of run_helper looked at errno after a
failure, rather than the return value of run_helper, which was the errno value
that it wanted.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-17 11:50:00 -07:00
..
alpha [PATCH] alpha: fix-up schedule_timeout() usage 2005-09-10 10:06:37 -07:00
arm [ARM] 2914/1: PXA Poodle: Add MMC and UDC support 2005-09-15 14:53:22 +01:00
arm26 [PATCH] Remove arch/arm26/boot/compressed/hw-bse.c 2005-09-17 11:49:59 -07:00
cris kbuild: rename prepare to archprepare to fix dependency chain 2005-09-11 22:30:22 +02:00
frv kbuild: frv,m32r,sparc64 introduce fake asm-offsets.h file 2005-09-09 22:47:53 +02:00
h8300 kbuild: h8300,m68knommu,sh,sh64 use generic asm-offsets.h support 2005-09-09 20:28:49 +02:00
i386 [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
ia64 [IA64] mca_drv cleanup 2005-09-16 10:39:40 -07:00
m32r [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
m68k Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2005-09-09 15:46:49 -07:00
m68knommu [PATCH] m68knommu: startup code for the Drangen Engine 68328 based board 2005-09-12 20:04:15 -07:00
mips [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
parisc [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
ppc [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
ppc64 [PATCH] ppc64: Fix recent regression 2005-09-15 08:04:39 -07:00
s390 [PATCH] s390: kernel stack corruption 2005-09-17 11:49:59 -07:00
sh kbuild: rename prepare to archprepare to fix dependency chain 2005-09-11 22:30:22 +02:00
sh64 kbuild: rename prepare to archprepare to fix dependency chain 2005-09-11 22:30:22 +02:00
sparc [SPARC]: Fix dot-symbol exporting for good. 2005-09-11 20:14:07 -07:00
sparc64 [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
um [PATCH] uml: preserve errno in error paths 2005-09-17 11:50:00 -07:00
v850 [PATCH] V850: C99 initializers for hw_interrupt_type structures 2005-09-10 10:06:27 -07:00
x86_64 [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
xtensa [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00