[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <mhng-389708b4-d3b4-46a5-a56c-6ea59c8e322d@palmer-ri-x1c9a>
Date: Thu, 13 Oct 2022 14:01:23 -0700 (PDT)
From: Palmer Dabbelt <palmer@...belt.com>
To: abrestic@...osinc.com
CC: Paul Walmsley <paul.walmsley@...ive.com>, coelacanthus@...look.com,
dramforever@...e.com, c141028@...il.com,
Conor Dooley <conor.dooley@...rochip.com>,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
abrestic@...osinc.com
Subject: Re: [PATCH v4 0/2] Make mmap() with PROT_WRITE imply PROT_READ
On Thu, 15 Sep 2022 12:37:00 PDT (-0700), abrestic@...osinc.com wrote:
> Commit 2139619bcad7 ("riscv: mmap with PROT_WRITE but no PROT_READ is
> invalid") made mmap() reject mappings with only PROT_WRITE set in an
> attempt to fix an observed inconsistency in behavior when attempting
> to read from a PROT_WRITE-only mapping. The root cause of this behavior
> was actually that while RISC-V's protection_map maps VM_WRITE to
> readable PTE permissions (since write-only PTEs are considered reserved
> by the privileged spec), the page fault handler considered loads from
> VM_WRITE-only VMAs illegal accesses. Fix the underlying cause by
> handling faults in VM_WRITE-only VMAs (patch 1) and then re-enable
> use of mmap(PROT_WRITE) (patch 2), making RISC-V's behavior consistent
> with all other architectures that don't support write-only PTEs.
>
> Both patches are tagged as fixes for the aforementioned commit since that
> commit made a userspace visible change that will break any software relying
> on mmap(PROT_WRITE). (Also cc: stable since the offending commit was
> itself backported to stable).
>
> v1 -> v2: Allow handling of load faults in VM_WRITE VMAs
> v2 -> v3: Split into two pathces
> v3 -> v4: Fixes tags (+ this cover letter)
>
> Andrew Bresticker (2):
> riscv: Make VM_WRITE imply VM_READ
> riscv: Allow PROT_WRITE-only mmap()
>
> arch/riscv/kernel/sys_riscv.c | 3 ---
> arch/riscv/mm/fault.c | 3 ++-
> 2 files changed, 2 insertions(+), 4 deletions(-)
Thanks, these are on for-next.
Powered by blists - more mailing lists