On Fri, Jul 13, 2018 at 09:49:56PM -0700, Dan Williams wrote: > Given that dax / device-mapped pages are never subject to page > allocations remove them from consideration by the soft-offline > mechanism. > > Reported-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> > Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> > --- > mm/memory-failure.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index 9d142b9b86dc..988f977db3d2 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -1751,6 +1751,14 @@ int soft_offline_page(struct page *page, int flags) > int ret; > unsigned long pfn = page_to_pfn(page); > > + if (is_zone_device_page(page)) { > + pr_debug_ratelimited("soft_offline: %#lx page is device page\n", > + pfn); > + if (flags & MF_COUNT_INCREASED) > + put_page(page); put_hwpoison_page(), which is just an alias of put_page(), is better for consistency. With this adjustment, feel free to add my ack. Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> Thanks, Naoya Horiguchi > + return -EIO; > + } > + > if (PageHWPoison(page)) { > pr_info("soft offline: %#lx page already poisoned\n", pfn); > if (flags & MF_COUNT_INCREASED) > >