Skip to content

Commit

Permalink
Convert non-highmem kmap_atomic() to static inline function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Geert Uytterhoeven authored and Linus Torvalds committed May 5, 2007
1 parent f5456e0 commit 254f9c5
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions include/linux/highmem.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,14 @@ static inline void *kmap(struct page *page)

#define kunmap(page) do { (void) (page); } while (0)

#define kmap_atomic(page, idx) \
({ pagefault_disable(); page_address(page); })
#include <asm/kmap_types.h>

static inline void *kmap_atomic(struct page *page, enum km_type idx)
{
pagefault_disable();
return page_address(page);
}

#define kunmap_atomic(addr, idx) do { pagefault_enable(); } while (0)
#define kmap_atomic_pfn(pfn, idx) kmap_atomic(pfn_to_page(pfn), (idx))
#define kmap_atomic_to_page(ptr) virt_to_page(ptr)
Expand Down

0 comments on commit 254f9c5

Please sign in to comment.