mm: strictly nested kmap_atomic()
Ensure kmap_atomic() usage is strictly nested Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Reviewed-by: Rik van Riel <riel@redhat.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: David Howells <dhowells@redhat.com> Cc: Hugh Dickins <hughd@google.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: David Miller <davem@davemloft.net> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
2e30244a7c
commit
61ecdb801e
@@ -984,8 +984,8 @@ static void copy_data_page(unsigned long dst_pfn, unsigned long src_pfn)
|
||||
src = kmap_atomic(s_page, KM_USER0);
|
||||
dst = kmap_atomic(d_page, KM_USER1);
|
||||
do_copy_page(dst, src);
|
||||
kunmap_atomic(src, KM_USER0);
|
||||
kunmap_atomic(dst, KM_USER1);
|
||||
kunmap_atomic(src, KM_USER0);
|
||||
} else {
|
||||
if (PageHighMem(d_page)) {
|
||||
/* Page pointed to by src may contain some kernel
|
||||
@@ -2273,8 +2273,8 @@ swap_two_pages_data(struct page *p1, struct page *p2, void *buf)
|
||||
memcpy(buf, kaddr1, PAGE_SIZE);
|
||||
memcpy(kaddr1, kaddr2, PAGE_SIZE);
|
||||
memcpy(kaddr2, buf, PAGE_SIZE);
|
||||
kunmap_atomic(kaddr1, KM_USER0);
|
||||
kunmap_atomic(kaddr2, KM_USER1);
|
||||
kunmap_atomic(kaddr1, KM_USER0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user