Commit 01f2705daf5a36208e69d7cf95db9c330f843af6 in mainline introduced macro zero_user_page(). This patch allows one to build ocfs2 with kernels having/not having that change.
Signed-off-by: Sunil Mushran <[EMAIL PROTECTED]> Signed-off-by: Joel Becker <[EMAIL PROTECTED]> --- Makefile | 3 ++- configure.in | 5 +++++ kapi-compat/include/highmem.h | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletions(-) create mode 100644 kapi-compat/include/highmem.h diff --git a/Makefile b/Makefile index 21ff590..b7b86db 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,8 @@ LINUX_INCLUDE_FILES = KAPI_COMPAT_FILES = \ kapi-compat/include/workqueue.h \ - kapi-compat/include/compiler.h + kapi-compat/include/compiler.h \ + kapi-compat/include/highmem.h PATCH_FILES = diff --git a/configure.in b/configure.in index 70c4041..0108f99 100644 --- a/configure.in +++ b/configure.in @@ -167,6 +167,11 @@ OCFS2_CHECK_KERNEL([uninitialized_var() in compiler-gcc4.h], compiler-gcc4.h, , compiler_compat_header="compiler.h", [uninitialized_var]) KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS $compiler_compat_header" +highmem_compat_header="" +OCFS2_CHECK_KERNEL([zero_user_page() in highmem.h], highmem.h, + , highmem_compat_header="highmem.h", [zero_user_page]) +KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS $highmem_compat_header" + # using -include has two advantages: # the source doesn't need to know to include compat headers # the compat header file names don't go through the search path diff --git a/kapi-compat/include/highmem.h b/kapi-compat/include/highmem.h new file mode 100644 index 0000000..a8c7e11 --- /dev/null +++ b/kapi-compat/include/highmem.h @@ -0,0 +1,22 @@ +#ifndef KAPI_HIGHMEM_H +#define KAPI_HIGHMEM_H + +/* + * Same but also flushes aliased cache contents to RAM. + * + * This must be a macro because KM_USER0 and friends aren't defined if + * !CONFIG_HIGHMEM + */ +#define zero_user_page(page, offset, size, km_type) \ + do { \ + void *kaddr; \ + \ + BUG_ON((offset) + (size) > PAGE_SIZE); \ + \ + kaddr = kmap_atomic(page, km_type); \ + memset((char *)kaddr + (offset), 0, (size)); \ + flush_dcache_page(page); \ + kunmap_atomic(kaddr, (km_type)); \ + } while (0) + +#endif -- 1.5.2.5 _______________________________________________ Ocfs2-devel mailing list Ocfs2-devel@oss.oracle.com http://oss.oracle.com/mailman/listinfo/ocfs2-devel