aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/highmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/highmem.c')
-rw-r--r--arch/arm/mm/highmem.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
index b98895d9fe57..ee8dfa793989 100644
--- a/arch/arm/mm/highmem.c
+++ b/arch/arm/mm/highmem.c
@@ -59,6 +59,7 @@ void *kmap_atomic(struct page *page)
59 void *kmap; 59 void *kmap;
60 int type; 60 int type;
61 61
62 preempt_disable();
62 pagefault_disable(); 63 pagefault_disable();
63 if (!PageHighMem(page)) 64 if (!PageHighMem(page))
64 return page_address(page); 65 return page_address(page);
@@ -121,6 +122,7 @@ void __kunmap_atomic(void *kvaddr)
121 kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)])); 122 kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)]));
122 } 123 }
123 pagefault_enable(); 124 pagefault_enable();
125 preempt_enable();
124} 126}
125EXPORT_SYMBOL(__kunmap_atomic); 127EXPORT_SYMBOL(__kunmap_atomic);
126 128
@@ -130,6 +132,7 @@ void *kmap_atomic_pfn(unsigned long pfn)
130 int idx, type; 132 int idx, type;
131 struct page *page = pfn_to_page(pfn); 133 struct page *page = pfn_to_page(pfn);
132 134
135 preempt_disable();
133 pagefault_disable(); 136 pagefault_disable();
134 if (!PageHighMem(page)) 137 if (!PageHighMem(page))
135 return page_address(page); 138 return page_address(page);