lkml.org 
[lkml]   [2019]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 38/63] mm, devm_memremap_pages: kill mapping "System RAM" support
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Dan Williams <dan.j.williams@intel.com>

    commit 06489cfbd915ff36c8e36df27f1c2dc60f97ca56 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.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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    kernel/memremap.c | 9 +++------
    1 file changed, 3 insertions(+), 6 deletions(-)

    --- a/kernel/memremap.c
    +++ b/kernel/memremap.c
    @@ -305,15 +305,12 @@ void *devm_memremap_pages(struct device
    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 (!ref)
    return ERR_PTR(-EINVAL);


    \
     
     \ /
      Last update: 2019-01-11 16:08    [W:4.612 / U:0.700 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site