diff --git a/kernel/memremap.c b/kernel/memremap.c index 5857267a4af5dab0cb0eb85ed9b61cdfcbc57dcc..62603634a1d235366c6eb19cb4d8f6062b7a70fa 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -339,7 +339,6 @@ void __put_devmap_managed_page(struct page *page) __ClearPageActive(page); __ClearPageWaiters(page); - page->mapping = NULL; mem_cgroup_uncharge(page); page->pgmap->page_free(page, page->pgmap->data); diff --git a/mm/hmm.c b/mm/hmm.c index de7b6bf7720104fa9312dab54618d7cc425c3f05..f9d1d89dec4d66d4948c2c4de3602e0878efa7ca 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -963,6 +963,8 @@ static void hmm_devmem_free(struct page *page, void *data) { struct hmm_devmem *devmem = data; + page->mapping = NULL; + devmem->ops->free(devmem, page); }