diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2007-05-01 16:33:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-04 20:59:08 -0400 |
commit | 254f9c5cd2d3b41e64f59df816630f7ca5548a8a (patch) | |
tree | f6e212c09a80e41ba228525869a269c75cbfc75a /include/linux/highmem.h | |
parent | f5456e040eaac7eb9545d49c38984af2047699be (diff) |
Convert non-highmem kmap_atomic() to static inline function
Convert kmap_atomic() in the non-highmem case from a macro to a static
inline function, for better type-checking and the ability to pass void
pointers instead of struct page pointers.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/highmem.h')
-rw-r--r-- | include/linux/highmem.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 645d440807c2..7bab8eae2341 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h | |||
@@ -42,8 +42,14 @@ static inline void *kmap(struct page *page) | |||
42 | 42 | ||
43 | #define kunmap(page) do { (void) (page); } while (0) | 43 | #define kunmap(page) do { (void) (page); } while (0) |
44 | 44 | ||
45 | #define kmap_atomic(page, idx) \ | 45 | #include <asm/kmap_types.h> |
46 | ({ pagefault_disable(); page_address(page); }) | 46 | |
47 | static inline void *kmap_atomic(struct page *page, enum km_type idx) | ||
48 | { | ||
49 | pagefault_disable(); | ||
50 | return page_address(page); | ||
51 | } | ||
52 | |||
47 | #define kunmap_atomic(addr, idx) do { pagefault_enable(); } while (0) | 53 | #define kunmap_atomic(addr, idx) do { pagefault_enable(); } while (0) |
48 | #define kmap_atomic_pfn(pfn, idx) kmap_atomic(pfn_to_page(pfn), (idx)) | 54 | #define kmap_atomic_pfn(pfn, idx) kmap_atomic(pfn_to_page(pfn), (idx)) |
49 | #define kmap_atomic_to_page(ptr) virt_to_page(ptr) | 55 | #define kmap_atomic_to_page(ptr) virt_to_page(ptr) |