From: Deepak Gupta <debug@rivosinc.com>
To: Alistair Francis <alistair23@gmail.com>
Cc: qemu-riscv@nongnu.org, qemu-devel@nongnu.org, palmer@dabbelt.com,
Alistair.Francis@wdc.com, laurent@vivier.eu, bmeng.cn@gmail.com,
liwei1518@gmail.com, dbarboza@ventanamicro.com,
zhiwei_liu@linux.alibaba.com, jim.shu@sifive.com,
andy.chiu@sifive.com, kito.cheng@sifive.com,
Richard Henderson <richard.henderson@linaro.org>
Subject: Re: [PATCH v11 13/20] target/riscv: mmu changes for zicfiss shadow stack protection
Date: Wed, 28 Aug 2024 17:17:19 -0700 [thread overview]
Message-ID: <Zs++D1WO/G1ntixu@debug.ba.rivosinc.com> (raw)
In-Reply-To: <CAKmqyKNVA3Y06824XbbsZ+7n2Ach==ah5m-28zxzCn-48En=9g@mail.gmail.com>
On Thu, Aug 29, 2024 at 10:03:04AM +1000, Alistair Francis wrote:
>On Thu, Aug 29, 2024 at 9:45 AM Deepak Gupta <debug@rivosinc.com> wrote:
>>
>> On Thu, Aug 29, 2024 at 09:29:49AM +1000, Alistair Francis wrote:
>> >On Thu, Aug 29, 2024 at 3:49 AM Deepak Gupta <debug@rivosinc.com> wrote:
>> >>
>> >> prot |= PAGE_WRITE;
>> >> }
>> >> - if (pte & PTE_X) {
>> >> + if (rwx & PTE_X) {
>> >> bool mxr = false;
>> >>
>> >> /*
>> >> @@ -1160,7 +1177,7 @@ restart:
>> >>
>> >> if (!((prot >> access_type) & 1)) {
>> >> /* Access check failed */
>> >> - return TRANSLATE_FAIL;
>> >> + return sstack_page ? TRANSLATE_PMP_FAIL : TRANSLATE_FAIL;
>> >
>> >Why is it a PMP error if it's a shadow stack page?
>>
>> A shadow stack page is readable by regular loads.
>> We are making sure of that in `case PTE_W` in above switch case.
>> But shadow stack page is not writeable via regular stores. And must raise
>> access fault. return code `TRANSLATE_PMP_FAIL` is translated to access fault
>> while raising fault.
>
>Ah, ok. It's worth commenting that we are returning TRANSLATE_PMP_FAIL
>as that will be translated to an access fault
Ack.
>
>Alistair
>
>>
>> >
>> >Alistair
next prev parent reply other threads:[~2024-08-29 0:17 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-28 17:47 [PATCH v11 00/20] riscv support for control flow integrity extensions Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 01/20] target/riscv: expose *envcfg csr and priv to qemu-user as well Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 02/20] target/riscv: Add zicfilp extension Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 03/20] target/riscv: Introduce elp state and enabling controls for zicfilp Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 04/20] target/riscv: save and restore elp state on priv transitions Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 05/20] target/riscv: additional code information for sw check Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 06/20] target/riscv: tracking indirect branches (fcfi) for zicfilp Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 07/20] target/riscv: zicfilp `lpad` impl and branch tracking Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 08/20] disas/riscv: enable `lpad` disassembly Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 09/20] target/riscv: Expose zicfilp extension as a cpu property Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 10/20] target/riscv: Add zicfiss extension Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 11/20] target/riscv: introduce ssp and enabling controls for zicfiss Deepak Gupta
2024-08-28 23:16 ` Alistair Francis
2024-08-28 17:47 ` [PATCH v11 12/20] target/riscv: tb flag for shadow stack instructions Deepak Gupta
2024-08-29 1:34 ` Richard Henderson
2024-08-28 17:47 ` [PATCH v11 13/20] target/riscv: mmu changes for zicfiss shadow stack protection Deepak Gupta
2024-08-28 23:29 ` Alistair Francis
2024-08-28 23:45 ` Deepak Gupta
2024-08-29 0:03 ` Alistair Francis
2024-08-29 0:17 ` Deepak Gupta [this message]
2024-08-28 17:47 ` [PATCH v11 14/20] target/riscv: AMO operations always raise store/AMO fault Deepak Gupta
2024-08-28 23:33 ` Alistair Francis
2024-08-28 17:47 ` [PATCH v11 15/20] target/riscv: update `decode_save_opc` to store extra word2 Deepak Gupta
2024-08-28 23:36 ` Alistair Francis
2024-08-28 17:47 ` [PATCH v11 16/20] target/riscv: implement zicfiss instructions Deepak Gupta
2024-08-29 0:01 ` Alistair Francis
2024-08-29 0:06 ` Deepak Gupta
2024-08-29 0:07 ` Alistair Francis
2024-08-29 0:15 ` Deepak Gupta
2024-08-28 17:47 ` [PATCH v11 17/20] target/riscv: compressed encodings for sspush and sspopchk Deepak Gupta
2024-08-29 0:03 ` Alistair Francis
2024-08-28 17:47 ` [PATCH v11 18/20] disas/riscv: enable disassembly for zicfiss instructions Deepak Gupta
2024-08-29 0:04 ` Alistair Francis
2024-08-28 17:47 ` [PATCH v11 19/20] disas/riscv: enable disassembly for compressed sspush/sspopchk Deepak Gupta
2024-08-29 0:06 ` Alistair Francis
2024-08-28 17:47 ` [PATCH v11 20/20] target/riscv: Expose zicfiss extension as a cpu property Deepak Gupta
2024-08-29 0:06 ` Alistair Francis
2024-08-28 17:50 ` [PATCH v11 00/20] riscv support for control flow integrity extensions Deepak Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zs++D1WO/G1ntixu@debug.ba.rivosinc.com \
--to=debug@rivosinc.com \
--cc=Alistair.Francis@wdc.com \
--cc=alistair23@gmail.com \
--cc=andy.chiu@sifive.com \
--cc=bmeng.cn@gmail.com \
--cc=dbarboza@ventanamicro.com \
--cc=jim.shu@sifive.com \
--cc=kito.cheng@sifive.com \
--cc=laurent@vivier.eu \
--cc=liwei1518@gmail.com \
--cc=palmer@dabbelt.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=zhiwei_liu@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.