Commit c6aee8fc authored by Dan Williams's avatar Dan Williams Committed by Juerg Haefliger

mm, devm_memremap_pages: kill mapping "System RAM" support

BugLink: https://bugs.launchpad.net/bugs/1811647

commit 06489cfb upstream.

Given the fact that devm_memremap_pages() requires a percpu_ref that is
torn down by devm_memremap_pages_release() the current support for mapping
RAM is broken.

Support for remapping "System RAM" has been broken since the beginning and
there is no existing user of this this code path, so just kill the support
and make it an explicit error.

This cleanup also simplifies a follow-on patch to fix the error path when
setting a devm release action for devm_memremap_pages_release() fails.

Link: http://lkml.kernel.org/r/154275557997.76910.14689813630968180480.stgit@dwillia2-desk3.amr.corp.intel.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
Reviewed-by: default avatar"Jérôme Glisse" <jglisse@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarLogan Gunthorpe <logang@deltatee.com>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
Signed-off-by: default avatarStefan Bader <stefan.bader@canonical.com>
parent 935515b1
...@@ -171,15 +171,12 @@ void *devm_memremap_pages(struct device *dev, struct resource *res) ...@@ -171,15 +171,12 @@ void *devm_memremap_pages(struct device *dev, struct resource *res)
struct page_map *page_map; struct page_map *page_map;
int error, nid; int error, nid;
if (is_ram == REGION_MIXED) { if (is_ram != REGION_DISJOINT) {
WARN_ONCE(1, "%s attempted on mixed region %pr\n", WARN_ONCE(1, "%s attempted on %s region %pr\n", __func__,
__func__, res); is_ram == REGION_MIXED ? "mixed" : "ram", res);
return ERR_PTR(-ENXIO); return ERR_PTR(-ENXIO);
} }
if (is_ram == REGION_INTERSECTS)
return __va(res->start);
page_map = devres_alloc_node(devm_memremap_pages_release, page_map = devres_alloc_node(devm_memremap_pages_release,
sizeof(*page_map), GFP_KERNEL, dev_to_node(dev)); sizeof(*page_map), GFP_KERNEL, dev_to_node(dev));
if (!page_map) if (!page_map)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment