On Wed, Sep 12, 2018 at 07:22:11PM -0700, Dan Williams wrote: > 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. > > Cc: Christoph Hellwig <h...@lst.de>
Reviewed-by: Jérôme Glisse <jgli...@redhat.com> > Cc: Logan Gunthorpe <log...@deltatee.com> > Signed-off-by: Dan Williams <dan.j.willi...@intel.com> > --- > kernel/memremap.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/kernel/memremap.c b/kernel/memremap.c > index f95c7833db6d..92e838127767 100644 > --- a/kernel/memremap.c > +++ b/kernel/memremap.c > @@ -202,15 +202,12 @@ void *devm_memremap_pages(struct device *dev, struct > dev_pagemap *pgmap) > is_ram = region_intersects(align_start, align_size, > IORESOURCE_SYSTEM_RAM, IORES_DESC_NONE); > > - if (is_ram == REGION_MIXED) { > - WARN_ONCE(1, "%s attempted on mixed region %pr\n", > - __func__, res); > + if (is_ram != REGION_DISJOINT) { > + WARN_ONCE(1, "%s attempted on %s region %pr\n", __func__, > + is_ram == REGION_MIXED ? "mixed" : "ram", res); > return ERR_PTR(-ENXIO); > } > > - if (is_ram == REGION_INTERSECTS) > - return __va(res->start); > - > if (!pgmap->ref) > return ERR_PTR(-EINVAL); > >