aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/bugfix/m68k/kmap_atomic-inline.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bugfix/m68k/kmap_atomic-inline.diff')
-rw-r--r--debian/patches/bugfix/m68k/kmap_atomic-inline.diff30
1 files changed, 30 insertions, 0 deletions
diff --git a/debian/patches/bugfix/m68k/kmap_atomic-inline.diff b/debian/patches/bugfix/m68k/kmap_atomic-inline.diff
new file mode 100644
index 000000000000..3f6c50f5e50b
--- /dev/null
+++ b/debian/patches/bugfix/m68k/kmap_atomic-inline.diff
@@ -0,0 +1,30 @@
+Subject: [PATCH] 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>
+---
+ include/linux/highmem.h | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- linux-m68k-2.6.21.orig/include/linux/highmem.h
++++ linux-m68k-2.6.21/include/linux/highmem.h
+@@ -42,8 +42,14 @@ static inline void *kmap(struct page *pa
+
+ #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)