diff options
Diffstat (limited to 'include/linux/page-flags.h')
| -rw-r--r-- | include/linux/page-flags.h | 23 | 
1 files changed, 23 insertions, 0 deletions
| diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index a558d67ee86f..fbfd3fad48f2 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -171,6 +171,15 @@ enum pageflags {  	/* Compound pages. Stored in first tail page's flags */  	PG_double_map = PG_workingset, +#ifdef CONFIG_MEMORY_FAILURE +	/* +	 * Compound pages. Stored in first tail page's flags. +	 * Indicates that at least one subpage is hwpoisoned in the +	 * THP. +	 */ +	PG_has_hwpoisoned = PG_mappedtodisk, +#endif +  	/* non-lru isolated movable page */  	PG_isolated = PG_reclaim, @@ -668,6 +677,20 @@ PAGEFLAG_FALSE(DoubleMap)  	TESTSCFLAG_FALSE(DoubleMap)  #endif +#if defined(CONFIG_MEMORY_FAILURE) && defined(CONFIG_TRANSPARENT_HUGEPAGE) +/* + * PageHasHWPoisoned indicates that at least one subpage is hwpoisoned in the + * compound page. + * + * This flag is set by hwpoison handler.  Cleared by THP split or free page. + */ +PAGEFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND) +	TESTSCFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND) +#else +PAGEFLAG_FALSE(HasHWPoisoned) +	TESTSCFLAG_FALSE(HasHWPoisoned) +#endif +  /*   * Check if a page is currently marked HWPoisoned. Note that this check is   * best effort only and inherently racy: there is no way to synchronize with |