lkml.org 
[lkml]   [2018]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 012/222] parisc: Fix map_pages() to not overwrite existing pte entries
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Helge Deller <deller@gmx.de>

    commit 3c229b3f2dd8133f61bb81d3cb018be92f4bba39 upstream.

    Fix a long-existing small nasty bug in the map_pages() implementation which
    leads to overwriting already written pte entries with zero, *if* map_pages() is
    called a second time with an end address which isn't aligned on a pmd boundry.
    This happens for example if we want to remap only the text segment read/write
    in order to run alternative patching on the code. Exiting the loop when we
    reach the end address fixes this.

    Cc: stable@vger.kernel.org
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/parisc/mm/init.c | 8 ++------
    1 file changed, 2 insertions(+), 6 deletions(-)

    --- a/arch/parisc/mm/init.c
    +++ b/arch/parisc/mm/init.c
    @@ -495,12 +495,8 @@ static void __init map_pages(unsigned lo
    pte = pte_mkhuge(pte);
    }

    - if (address >= end_paddr) {
    - if (force)
    - break;
    - else
    - pte_val(pte) = 0;
    - }
    + if (address >= end_paddr)
    + break;

    set_pte(pg_table, pte);


    \
     
     \ /
      Last update: 2018-11-12 00:11    [W:4.146 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site