diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 14ae5c18e77668b431d6a1123108e5ddc3ddeaa6..97a9ed8f87a96ac0a3e0ef02725b168092e7a37a 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1595,6 +1595,12 @@ static int memory_failure_dev_pagemap(unsigned long pfn, int flags, goto out; } + /* + * Pages instantiated by device-dax (not filesystem-dax) + * may be compound pages. + */ + page = compound_head(page); + /* * Prevent the inode from being freed while we are interrogating * the address_space, typically this would be handled by