mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 08:19:28 +00:00
![Paolo 'Blaisorblade' Giarrusso](/assets/img/avatar_default.png)
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>
29 lines
490 B
C
29 lines
490 B
C
/*
|
|
* Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
|
|
* Licensed under the GPL
|
|
*/
|
|
|
|
#ifndef __UM_KMAP_TYPES_H
|
|
#define __UM_KMAP_TYPES_H
|
|
|
|
/* No more #include "asm/arch/kmap_types.h" ! */
|
|
|
|
enum km_type {
|
|
KM_BOUNCE_READ,
|
|
KM_SKB_SUNRPC_DATA,
|
|
KM_SKB_DATA_SOFTIRQ,
|
|
KM_USER0,
|
|
KM_USER1,
|
|
KM_UML_USERCOPY, /* UML specific, for copy_*_user - used in do_op_one_page */
|
|
KM_BIO_SRC_IRQ,
|
|
KM_BIO_DST_IRQ,
|
|
KM_PTE0,
|
|
KM_PTE1,
|
|
KM_IRQ0,
|
|
KM_IRQ1,
|
|
KM_SOFTIRQ0,
|
|
KM_SOFTIRQ1,
|
|
KM_TYPE_NR
|
|
};
|
|
|
|
#endif
|