aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/page-flags.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 2b87acfc5f87..9bc5fd9fdbf6 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -51,6 +51,9 @@
51 * PG_buddy is set to indicate that the page is free and in the buddy system 51 * PG_buddy is set to indicate that the page is free and in the buddy system
52 * (see mm/page_alloc.c). 52 * (see mm/page_alloc.c).
53 * 53 *
54 * PG_hwpoison indicates that a page got corrupted in hardware and contains
55 * data with incorrect ECC bits that triggered a machine check. Accessing is
56 * not safe since it may cause another machine check. Don't touch!
54 */ 57 */
55 58
56/* 59/*
@@ -102,6 +105,9 @@ enum pageflags {
102#ifdef CONFIG_ARCH_USES_PG_UNCACHED 105#ifdef CONFIG_ARCH_USES_PG_UNCACHED
103 PG_uncached, /* Page has been mapped as uncached */ 106 PG_uncached, /* Page has been mapped as uncached */
104#endif 107#endif
108#ifdef CONFIG_MEMORY_FAILURE
109 PG_hwpoison, /* hardware poisoned page. Don't touch */
110#endif
105 __NR_PAGEFLAGS, 111 __NR_PAGEFLAGS,
106 112
107 /* Filesystems */ 113 /* Filesystems */
@@ -263,6 +269,15 @@ PAGEFLAG(Uncached, uncached)
263PAGEFLAG_FALSE(Uncached) 269PAGEFLAG_FALSE(Uncached)
264#endif 270#endif
265 271
272#ifdef CONFIG_MEMORY_FAILURE
273PAGEFLAG(HWPoison, hwpoison)
274TESTSETFLAG(HWPoison, hwpoison)
275#define __PG_HWPOISON (1UL << PG_hwpoison)
276#else
277PAGEFLAG_FALSE(HWPoison)
278#define __PG_HWPOISON 0
279#endif
280
266static inline int PageUptodate(struct page *page) 281static inline int PageUptodate(struct page *page)
267{ 282{
268 int ret = test_bit(PG_uptodate, &(page)->flags); 283 int ret = test_bit(PG_uptodate, &(page)->flags);
@@ -387,7 +402,7 @@ static inline void __ClearPageTail(struct page *page)
387 1 << PG_private | 1 << PG_private_2 | \ 402 1 << PG_private | 1 << PG_private_2 | \
388 1 << PG_buddy | 1 << PG_writeback | 1 << PG_reserved | \ 403 1 << PG_buddy | 1 << PG_writeback | 1 << PG_reserved | \
389 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active | \ 404 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active | \
390 1 << PG_unevictable | __PG_MLOCKED) 405 1 << PG_unevictable | __PG_MLOCKED | __PG_HWPOISON)
391 406
392/* 407/*
393 * Flags checked when a page is prepped for return by the page allocator. 408 * Flags checked when a page is prepped for return by the page allocator.