linux/arch
Paolo 'Blaisorblade' Giarrusso 47e5243afe [PATCH] uml: make copy_*_user atomic
Make __copy_*_user_inatomic really atomic to avoid "Sleeping function called in
atomic context" warnings, especially from futex code.

This is made by adding another kmap_atomic slot and making copy_*_user_skas
use kmap_atomic; also copy_*_user() becomes atomic, but that's true and is not
a problem for i386 (and we can always add might_sleep there as done
elsewhere).  For TT mode kmap is not used, so there's no need for this.

I've had to use another slot since both KM_USER0 and KM_USER1 are used
elsewhere and could cause conflicts.  Till now we reused the kmap_atomic slot
list from the subarch, but that's not needed as that list must contain the
common ones (used by generic code) + the ones used in architecture specific
code (and Uml till now used none); so I've taken the i386 one after comparing
it with ones from other archs, and added KM_UML_USERCOPY.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-01 09:56:03 -07:00
..
alpha Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
arm26 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cris Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
frv Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
h8300 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i386 [PATCH] SMP alternatives: skip with UP kernels 2006-07-01 09:56:02 -07:00
ia64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
m32r Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
m68k Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
m68knommu Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mips Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
parisc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
powerpc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
sh Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sh64 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
sparc64 Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-06-30 15:40:35 -07:00
um [PATCH] uml: make copy_*_user atomic 2006-07-01 09:56:03 -07:00
v850 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
x86_64 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
xtensa Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00