[Cc Nick]

On Wed 27-03-19 17:57:52, Anshuman Khandual wrote:
> Just check for enforce parameter in PF_ONLY_HEAD() wrapper before calling
> VM_BUG_ON_PGFLAGS() for tail pages.

Why is this an actual fix? Only TESTPAGEFLAG doesn't enforce the check
but I suspect that Nick just wanted the check to be _always_ performed
as the name suggests. What kind of problem are you trying to solve?

> Fixes: 62906027091f ("mm: add PageWaiters indicating tasks are waiting for a 
> page bit")
> Signed-off-by: Anshuman Khandual <[email protected]>
> ---
>  include/linux/page-flags.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
> index 9f8712a4b1a5..82539e287bc6 100644
> --- a/include/linux/page-flags.h
> +++ b/include/linux/page-flags.h
> @@ -229,7 +229,7 @@ static inline void page_init_poison(struct page *page, 
> size_t size)
>  #define PF_ANY(page, enforce)        PF_POISONED_CHECK(page)
>  #define PF_HEAD(page, enforce)       PF_POISONED_CHECK(compound_head(page))
>  #define PF_ONLY_HEAD(page, enforce) ({                                       
> \
> -             VM_BUG_ON_PGFLAGS(PageTail(page), page);                \
> +             VM_BUG_ON_PGFLAGS(enforce && PageTail(page), page);     \
>               PF_POISONED_CHECK(page); })
>  #define PF_NO_TAIL(page, enforce) ({                                 \
>               VM_BUG_ON_PGFLAGS(enforce && PageTail(page), page);     \
> -- 
> 2.20.1
> 

-- 
Michal Hocko
SUSE Labs

Reply via email to