The routines hmm_devmem_add(), and hmm_devmem_add_resource() are now wrappers around the functionality provided by devm_memremap_pages() to inject a dev_pagemap instance and hook page-idle events. The devm_memremap_pages() interface is base infrastructure for HMM which has more and deeper ties into the kernel memory management implementation than base ZONE_DEVICE. Originally, the HMM page structure creation routines copied the devm_memremap_pages() code and reused ZONE_DEVICE. A cleanup to unify the implementations was discussed during the initial review: http://lkml.iu.edu/hypermail/linux/kernel/1701.2/00812.html Given that devm_memremap_pages() is marked EXPORT_SYMBOL_GPL by its authors and the hmm_devmem_{add,add_resource} routines are simple wrappers around that base, mark these routines as EXPORT_SYMBOL_GPL as well. Cc: "Jérôme Glisse" <jglisse@xxxxxxxxxx> Cc: Logan Gunthorpe <logang@xxxxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> --- mm/hmm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/hmm.c b/mm/hmm.c index b019d67a610e..481a7a5f6f46 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -1054,7 +1054,7 @@ struct hmm_devmem *hmm_devmem_add(const struct hmm_devmem_ops *ops, return result; return devmem; } -EXPORT_SYMBOL(hmm_devmem_add); +EXPORT_SYMBOL_GPL(hmm_devmem_add); struct hmm_devmem *hmm_devmem_add_resource(const struct hmm_devmem_ops *ops, struct device *device, @@ -1108,7 +1108,7 @@ struct hmm_devmem *hmm_devmem_add_resource(const struct hmm_devmem_ops *ops, return result; return devmem; } -EXPORT_SYMBOL(hmm_devmem_add_resource); +EXPORT_SYMBOL_GPL(hmm_devmem_add_resource); /* * A device driver that wants to handle multiple devices memory through a