[PATCH] rmap: fixup page_referenced() for nommu systems

From: Mike Frysinger
Date: Thu Jun 18 2009 - 20:37:18 EST


After the recent changes that went into mm/vmscan.c to overhaul stuff, we
ended up with these warnings on no-mmu systems:
mm/vmscan.c: In function âshrink_page_listâ:
mm/vmscan.c:580: warning: unused variable âvm_flagsâ
mm/vmscan.c: In function âshrink_active_listâ:
mm/vmscan.c:1294: warning: âvm_flagsâ may be used uninitialized in this function
mm/vmscan.c:1242: note: âvm_flagsâ was declared here

This is because the no-mmu function defines page_referenced() to work on
the first argument only (the page). It does not clear the vm_flags given
to it because for no-mmu systems, they never actually get utilized. Since
that is no longer strictly true, we need to set vm_flags to 0 like everyone
else so gcc can do proper dead code elimination without annoying us with
unused warnings.

Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx>
---
include/linux/rmap.h | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index 216d024..bf116d0 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -118,7 +118,14 @@ int try_to_munlock(struct page *);
#define anon_vma_prepare(vma) (0)
#define anon_vma_link(vma) do {} while (0)

-#define page_referenced(page, locked, cnt, flags) TestClearPageReferenced(page)
+static inline int page_referenced(struct page *page, int is_locked,
+ struct mem_cgroup *cnt,
+ unsigned long *vm_flags)
+{
+ *vm_flags = 0;
+ return TestClearPageReferenced(page);
+}
+
#define try_to_unmap(page, refs) SWAP_FAIL

static inline int page_mkclean(struct page *page)
--
1.6.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/