Archived
14
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/include
Ralf Baechle e03b526932 [MIPS] Fixup copy_from_user_inatomic
From the 01408c4939 log message:

The problem is that when we write to a file, the copy from userspace to
pagecache is first done with preemption disabled, so if the source
address is not immediately available the copy fails *and* *zeros* *the*
*destination*.

This is a problem because a concurrent read (which admittedly is an odd
thing to do) might see zeros rather that was there before the write, or
what was there after, or some mixture of the two (any of these being a
reasonable thing to see).

If the copy did fail, it will immediately be retried with preemption
re-enabled so any transient problem with accessing the source won't
cause an error.

The first copying does not need to zero any uncopied bytes, and doing
so causes the problem.  It uses copy_from_user_atomic rather than
copy_from_user so the simple expedient is to change copy_from_user_atomic
to *not* zero out bytes on failure.

< --- end cite --- >

This patch finally implements at least a not so pretty solution by
duplicating the relevant part of __copy_user.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-02-20 01:26:42 +00:00
..
acpi Pull bugzilla-7887 into release branch 2007-02-16 22:11:57 -05:00
asm-alpha
asm-arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-02-19 13:29:02 -08:00
asm-arm26 Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
asm-avr32 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-02-19 13:18:39 -08:00
asm-cris
asm-frv
asm-generic [PATCH] i386: paravirt CPU hypercall batching mode 2007-02-13 13:26:21 +01:00
asm-h8300
asm-i386 Pull misc-for-upstream into release branch 2007-02-16 18:52:41 -05:00
asm-ia64 Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
asm-m32r
asm-m68k
asm-m68knommu
asm-mips [MIPS] Fixup copy_from_user_inatomic 2007-02-20 01:26:42 +00:00
asm-parisc
asm-powerpc [POWERPC] QE: clean up ucc_slow.c and ucc_fast.c 2007-02-17 16:12:54 -06:00
asm-ppc [POWERPC] ppc: Add support for AMCC Taishan 440GX eval board 2007-02-13 15:35:52 +11:00
asm-s390
asm-sh sh: rts7751r2d board updates. 2007-02-15 18:20:52 +09:00
asm-sh64
asm-sparc
asm-sparc64
asm-um
asm-v850
asm-x86_64 [PATCH] time: x86_64: re-enable vsyscall support for x86_64 2007-02-16 08:14:00 -08:00
asm-xtensa
crypto
keys
linux [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
math-emu
media
mtd
net [IPSEC]: changing API of xfrm6_tunnel_register 2007-02-13 12:55:55 -08:00
pcmcia serial: Add PCMCIA IDs for Quatech DSP-100 dual RS232 adapter. 2007-02-16 15:19:16 -08:00
rdma RDMA/cma: Add multicast communication support 2007-02-16 14:29:07 -08:00
rxrpc
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-02-19 13:32:28 -08:00
sound [ALSA] version 1.0.14rc2 2007-02-14 08:42:20 +01:00
video
Kbuild