lkml.org 
[lkml]   [2022]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 05/14] riscv: mmap with PROT_WRITE but no PROT_READ is invalid
    Date
    From: Celeste Liu <coelacanthus@outlook.com>

    [ Upstream commit 2139619bcad7ac44cc8f6f749089120594056613 ]

    As mentioned in Table 4.5 in RISC-V spec Volume 2 Section 4.3, write
    but not read is "Reserved for future use.". For now, they are not valid.
    In the current code, -wx is marked as invalid, but -w- is not marked
    as invalid.
    This patch refines that judgment.

    Reported-by: xctan <xc-tan@outlook.com>
    Co-developed-by: dram <dramforever@live.com>
    Signed-off-by: dram <dramforever@live.com>
    Co-developed-by: Ruizhe Pan <c141028@gmail.com>
    Signed-off-by: Ruizhe Pan <c141028@gmail.com>
    Signed-off-by: Celeste Liu <coelacanthus@outlook.com>
    Link: https://lore.kernel.org/r/PH7PR14MB559464DBDD310E755F5B21E8CEDC9@PH7PR14MB5594.namprd14.prod.outlook.com
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/riscv/kernel/sys_riscv.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/arch/riscv/kernel/sys_riscv.c b/arch/riscv/kernel/sys_riscv.c
    index db44da32701f..516aaa19daf2 100644
    --- a/arch/riscv/kernel/sys_riscv.c
    +++ b/arch/riscv/kernel/sys_riscv.c
    @@ -26,9 +26,8 @@ static long riscv_sys_mmap(unsigned long addr, unsigned long len,
    if (unlikely(offset & (~PAGE_MASK >> page_shift_offset)))
    return -EINVAL;

    - if ((prot & PROT_WRITE) && (prot & PROT_EXEC))
    - if (unlikely(!(prot & PROT_READ)))
    - return -EINVAL;
    + if (unlikely((prot & PROT_WRITE) && !(prot & PROT_READ)))
    + return -EINVAL;

    return ksys_mmap_pgoff(addr, len, prot, flags, fd,
    offset >> (PAGE_SHIFT - page_shift_offset));
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-14 18:40    [W:2.710 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site