Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm, devm_memremap_pages: kill mapping "System RAM" support

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.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: "Jérôme Glisse" <jglisse@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Dan Williams and committed by
Linus Torvalds
06489cfb 808153e1

+3 -6
+3 -6
kernel/memremap.c
··· 167 167 is_ram = region_intersects(align_start, align_size, 168 168 IORESOURCE_SYSTEM_RAM, IORES_DESC_NONE); 169 169 170 - if (is_ram == REGION_MIXED) { 171 - WARN_ONCE(1, "%s attempted on mixed region %pr\n", 172 - __func__, res); 170 + if (is_ram != REGION_DISJOINT) { 171 + WARN_ONCE(1, "%s attempted on %s region %pr\n", __func__, 172 + is_ram == REGION_MIXED ? "mixed" : "ram", res); 173 173 return ERR_PTR(-ENXIO); 174 174 } 175 - 176 - if (is_ram == REGION_INTERSECTS) 177 - return __va(res->start); 178 175 179 176 if (!pgmap->ref) 180 177 return ERR_PTR(-EINVAL);