mm, hmm: replace hmm_devmem_pages_create() with devm_memremap_pages()
e8d513483300 "memremap: change devm_memremap_pages interface to use struct
dev_pagemap" refactored devm_memremap_pages() to allow a dev_pagemap
instance to be supplied. Passing in a dev_pagemap interface simplifies
the design of pgmap type drivers in that they can rely on container_of()
to lookup any private data associated with the given dev_pagemap instance.
In addition to the cleanups this also gives hmm users multi-order-radix
improvements that arrived with commit
ab1b597ee0e4 "mm,
devm_memremap_pages: use multi-order radix for ZONE_DEVICE lookups"
As part of the conversion to the devm_memremap_pages() method of handling
the percpu_ref relative to when pages are put, the percpu_ref completion
needs to move to hmm_devmem_ref_exit(). See
71389703839e ("mm,
zone_device: Replace {get, put}_zone_device_page...") for details.
Link: http://lkml.kernel.org/r/154275560053.76910.10870962637383152392.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jérôme Glisse <jglisse@redhat.com>
Acked-by: Balbir Singh <bsingharora@gmail.com>
Cc: Logan Gunthorpe <logang@deltatee.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>