|
@@ -158,6 +158,9 @@ static inline int TestSetPage##uname(struct page *page) \
|
|
|
static inline int TestClearPage##uname(struct page *page) \
|
|
|
{ return test_and_clear_bit(PG_##lname, &page->flags); }
|
|
|
|
|
|
+#define __TESTCLEARFLAG(uname, lname) \
|
|
|
+static inline int __TestClearPage##uname(struct page *page) \
|
|
|
+ { return __test_and_clear_bit(PG_##lname, &page->flags); }
|
|
|
|
|
|
#define PAGEFLAG(uname, lname) TESTPAGEFLAG(uname, lname) \
|
|
|
SETPAGEFLAG(uname, lname) CLEARPAGEFLAG(uname, lname)
|
|
@@ -184,6 +187,9 @@ static inline void __ClearPage##uname(struct page *page) { }
|
|
|
#define TESTCLEARFLAG_FALSE(uname) \
|
|
|
static inline int TestClearPage##uname(struct page *page) { return 0; }
|
|
|
|
|
|
+#define __TESTCLEARFLAG_FALSE(uname) \
|
|
|
+static inline int __TestClearPage##uname(struct page *page) { return 0; }
|
|
|
+
|
|
|
struct page; /* forward declaration */
|
|
|
|
|
|
TESTPAGEFLAG(Locked, locked) TESTSETFLAG(Locked, locked)
|
|
@@ -250,11 +256,11 @@ PAGEFLAG(Unevictable, unevictable) __CLEARPAGEFLAG(Unevictable, unevictable)
|
|
|
#ifdef CONFIG_HAVE_MLOCKED_PAGE_BIT
|
|
|
#define MLOCK_PAGES 1
|
|
|
PAGEFLAG(Mlocked, mlocked) __CLEARPAGEFLAG(Mlocked, mlocked)
|
|
|
- TESTSCFLAG(Mlocked, mlocked)
|
|
|
+ TESTSCFLAG(Mlocked, mlocked) __TESTCLEARFLAG(Mlocked, mlocked)
|
|
|
#else
|
|
|
#define MLOCK_PAGES 0
|
|
|
-PAGEFLAG_FALSE(Mlocked)
|
|
|
- SETPAGEFLAG_NOOP(Mlocked) TESTCLEARFLAG_FALSE(Mlocked)
|
|
|
+PAGEFLAG_FALSE(Mlocked) SETPAGEFLAG_NOOP(Mlocked)
|
|
|
+ TESTCLEARFLAG_FALSE(Mlocked) __TESTCLEARFLAG_FALSE(Mlocked)
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_ARCH_USES_PG_UNCACHED
|