diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/frv/kernel/futex.c | 4 | ||||
-rw-r--r-- | arch/i386/mm/highmem.c | 10 | ||||
-rw-r--r-- | arch/mips/mm/highmem.c | 10 | ||||
-rw-r--r-- | arch/s390/lib/uaccess_std.c | 6 | ||||
-rw-r--r-- | arch/sparc/mm/highmem.c | 8 |
5 files changed, 16 insertions, 22 deletions
diff --git a/arch/frv/kernel/futex.c b/arch/frv/kernel/futex.c index eae874a970c6..53dc5ed1ebda 100644 --- a/arch/frv/kernel/futex.c +++ b/arch/frv/kernel/futex.c | |||
@@ -200,7 +200,7 @@ int futex_atomic_op_inuser(int encoded_op, int __user *uaddr) | |||
200 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | 200 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) |
201 | return -EFAULT; | 201 | return -EFAULT; |
202 | 202 | ||
203 | inc_preempt_count(); | 203 | pagefault_disable(); |
204 | 204 | ||
205 | switch (op) { | 205 | switch (op) { |
206 | case FUTEX_OP_SET: | 206 | case FUTEX_OP_SET: |
@@ -223,7 +223,7 @@ int futex_atomic_op_inuser(int encoded_op, int __user *uaddr) | |||
223 | break; | 223 | break; |
224 | } | 224 | } |
225 | 225 | ||
226 | dec_preempt_count(); | 226 | pagefault_enable(); |
227 | 227 | ||
228 | if (!ret) { | 228 | if (!ret) { |
229 | switch (cmp) { | 229 | switch (cmp) { |
diff --git a/arch/i386/mm/highmem.c b/arch/i386/mm/highmem.c index f9f647cdbc7b..178bbfe6cbac 100644 --- a/arch/i386/mm/highmem.c +++ b/arch/i386/mm/highmem.c | |||
@@ -32,7 +32,7 @@ void *kmap_atomic(struct page *page, enum km_type type) | |||
32 | unsigned long vaddr; | 32 | unsigned long vaddr; |
33 | 33 | ||
34 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | 34 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ |
35 | inc_preempt_count(); | 35 | pagefault_disable(); |
36 | if (!PageHighMem(page)) | 36 | if (!PageHighMem(page)) |
37 | return page_address(page); | 37 | return page_address(page); |
38 | 38 | ||
@@ -52,8 +52,7 @@ void kunmap_atomic(void *kvaddr, enum km_type type) | |||
52 | 52 | ||
53 | #ifdef CONFIG_DEBUG_HIGHMEM | 53 | #ifdef CONFIG_DEBUG_HIGHMEM |
54 | if (vaddr >= PAGE_OFFSET && vaddr < (unsigned long)high_memory) { | 54 | if (vaddr >= PAGE_OFFSET && vaddr < (unsigned long)high_memory) { |
55 | dec_preempt_count(); | 55 | pagefault_enable(); |
56 | preempt_check_resched(); | ||
57 | return; | 56 | return; |
58 | } | 57 | } |
59 | 58 | ||
@@ -68,8 +67,7 @@ void kunmap_atomic(void *kvaddr, enum km_type type) | |||
68 | */ | 67 | */ |
69 | kpte_clear_flush(kmap_pte-idx, vaddr); | 68 | kpte_clear_flush(kmap_pte-idx, vaddr); |
70 | 69 | ||
71 | dec_preempt_count(); | 70 | pagefault_enable(); |
72 | preempt_check_resched(); | ||
73 | } | 71 | } |
74 | 72 | ||
75 | /* This is the same as kmap_atomic() but can map memory that doesn't | 73 | /* This is the same as kmap_atomic() but can map memory that doesn't |
@@ -80,7 +78,7 @@ void *kmap_atomic_pfn(unsigned long pfn, enum km_type type) | |||
80 | enum fixed_addresses idx; | 78 | enum fixed_addresses idx; |
81 | unsigned long vaddr; | 79 | unsigned long vaddr; |
82 | 80 | ||
83 | inc_preempt_count(); | 81 | pagefault_disable(); |
84 | 82 | ||
85 | idx = type + KM_TYPE_NR*smp_processor_id(); | 83 | idx = type + KM_TYPE_NR*smp_processor_id(); |
86 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | 84 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c index 99ebf3ccc222..675502ada5a2 100644 --- a/arch/mips/mm/highmem.c +++ b/arch/mips/mm/highmem.c | |||
@@ -39,7 +39,7 @@ void *__kmap_atomic(struct page *page, enum km_type type) | |||
39 | unsigned long vaddr; | 39 | unsigned long vaddr; |
40 | 40 | ||
41 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | 41 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ |
42 | inc_preempt_count(); | 42 | pagefault_disable(); |
43 | if (!PageHighMem(page)) | 43 | if (!PageHighMem(page)) |
44 | return page_address(page); | 44 | return page_address(page); |
45 | 45 | ||
@@ -62,8 +62,7 @@ void __kunmap_atomic(void *kvaddr, enum km_type type) | |||
62 | enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); | 62 | enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); |
63 | 63 | ||
64 | if (vaddr < FIXADDR_START) { // FIXME | 64 | if (vaddr < FIXADDR_START) { // FIXME |
65 | dec_preempt_count(); | 65 | pagefault_enable(); |
66 | preempt_check_resched(); | ||
67 | return; | 66 | return; |
68 | } | 67 | } |
69 | 68 | ||
@@ -78,8 +77,7 @@ void __kunmap_atomic(void *kvaddr, enum km_type type) | |||
78 | local_flush_tlb_one(vaddr); | 77 | local_flush_tlb_one(vaddr); |
79 | #endif | 78 | #endif |
80 | 79 | ||
81 | dec_preempt_count(); | 80 | pagefault_enable(); |
82 | preempt_check_resched(); | ||
83 | } | 81 | } |
84 | 82 | ||
85 | #ifndef CONFIG_LIMITED_DMA | 83 | #ifndef CONFIG_LIMITED_DMA |
@@ -92,7 +90,7 @@ void *kmap_atomic_pfn(unsigned long pfn, enum km_type type) | |||
92 | enum fixed_addresses idx; | 90 | enum fixed_addresses idx; |
93 | unsigned long vaddr; | 91 | unsigned long vaddr; |
94 | 92 | ||
95 | inc_preempt_count(); | 93 | pagefault_disable(); |
96 | 94 | ||
97 | idx = type + KM_TYPE_NR*smp_processor_id(); | 95 | idx = type + KM_TYPE_NR*smp_processor_id(); |
98 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | 96 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
diff --git a/arch/s390/lib/uaccess_std.c b/arch/s390/lib/uaccess_std.c index 2d549ed2e113..bbaca66fa293 100644 --- a/arch/s390/lib/uaccess_std.c +++ b/arch/s390/lib/uaccess_std.c | |||
@@ -11,7 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <asm/uaccess.h> | 14 | #include <linux/uaccess.h> |
15 | #include <asm/futex.h> | 15 | #include <asm/futex.h> |
16 | 16 | ||
17 | #ifndef __s390x__ | 17 | #ifndef __s390x__ |
@@ -258,7 +258,7 @@ int futex_atomic_op(int op, int __user *uaddr, int oparg, int *old) | |||
258 | { | 258 | { |
259 | int oldval = 0, newval, ret; | 259 | int oldval = 0, newval, ret; |
260 | 260 | ||
261 | inc_preempt_count(); | 261 | pagefault_disable(); |
262 | 262 | ||
263 | switch (op) { | 263 | switch (op) { |
264 | case FUTEX_OP_SET: | 264 | case FUTEX_OP_SET: |
@@ -284,7 +284,7 @@ int futex_atomic_op(int op, int __user *uaddr, int oparg, int *old) | |||
284 | default: | 284 | default: |
285 | ret = -ENOSYS; | 285 | ret = -ENOSYS; |
286 | } | 286 | } |
287 | dec_preempt_count(); | 287 | pagefault_enable(); |
288 | *old = oldval; | 288 | *old = oldval; |
289 | return ret; | 289 | return ret; |
290 | } | 290 | } |
diff --git a/arch/sparc/mm/highmem.c b/arch/sparc/mm/highmem.c index 4d8ed9c65182..01fc6c254292 100644 --- a/arch/sparc/mm/highmem.c +++ b/arch/sparc/mm/highmem.c | |||
@@ -35,7 +35,7 @@ void *kmap_atomic(struct page *page, enum km_type type) | |||
35 | unsigned long vaddr; | 35 | unsigned long vaddr; |
36 | 36 | ||
37 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | 37 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ |
38 | inc_preempt_count(); | 38 | pagefault_disable(); |
39 | if (!PageHighMem(page)) | 39 | if (!PageHighMem(page)) |
40 | return page_address(page); | 40 | return page_address(page); |
41 | 41 | ||
@@ -70,8 +70,7 @@ void kunmap_atomic(void *kvaddr, enum km_type type) | |||
70 | unsigned long idx = type + KM_TYPE_NR*smp_processor_id(); | 70 | unsigned long idx = type + KM_TYPE_NR*smp_processor_id(); |
71 | 71 | ||
72 | if (vaddr < FIXADDR_START) { // FIXME | 72 | if (vaddr < FIXADDR_START) { // FIXME |
73 | dec_preempt_count(); | 73 | pagefault_enable(); |
74 | preempt_check_resched(); | ||
75 | return; | 74 | return; |
76 | } | 75 | } |
77 | 76 | ||
@@ -97,8 +96,7 @@ void kunmap_atomic(void *kvaddr, enum km_type type) | |||
97 | #endif | 96 | #endif |
98 | #endif | 97 | #endif |
99 | 98 | ||
100 | dec_preempt_count(); | 99 | pagefault_enable(); |
101 | preempt_check_resched(); | ||
102 | } | 100 | } |
103 | 101 | ||
104 | /* We may be fed a pagetable here by ptep_to_xxx and others. */ | 102 | /* We may be fed a pagetable here by ptep_to_xxx and others. */ |