From: Andrey Konovalov <andreyknvl@gmail.com>
To: Samuel Holland <samuel.holland@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
linux-riscv@lists.infradead.org,
Andrey Ryabinin <ryabinin.a.a@gmail.com>,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
kasan-dev@googlegroups.com, llvm@lists.linux.dev,
Catalin Marinas <catalin.marinas@arm.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Alexandre Ghiti <alexghiti@rivosinc.com>,
Will Deacon <will@kernel.org>,
Evgenii Stepanov <eugenis@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 3/9] kasan: sw_tags: Support outline stack tag generation
Date: Wed, 23 Oct 2024 20:42:03 +0200 [thread overview]
Message-ID: <CA+fCnZe49OGG_8J40_d9dTUBktY6qe-1dq1Y6Q+7hY9=xmUWQw@mail.gmail.com> (raw)
In-Reply-To: <20241022015913.3524425-4-samuel.holland@sifive.com>
On Tue, Oct 22, 2024 at 3:59 AM Samuel Holland
<samuel.holland@sifive.com> wrote:
>
> This allows stack tagging to be disabled at runtime by tagging all
> stack objects with the match-all tag. This is necessary on RISC-V,
> where a kernel with KASAN_SW_TAGS enabled is expected to boot on
> hardware without pointer masking support.
>
> Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
> ---
>
> Changes in v2:
> - Split the generic and RISC-V parts of stack tag generation control
> to avoid breaking bisectability
>
> mm/kasan/kasan.h | 2 ++
> mm/kasan/sw_tags.c | 9 +++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h
> index f438a6cdc964..72da5ddcceaa 100644
> --- a/mm/kasan/kasan.h
> +++ b/mm/kasan/kasan.h
> @@ -636,6 +636,8 @@ void *__asan_memset(void *addr, int c, ssize_t len);
> void *__asan_memmove(void *dest, const void *src, ssize_t len);
> void *__asan_memcpy(void *dest, const void *src, ssize_t len);
>
> +u8 __hwasan_generate_tag(void);
> +
> void __hwasan_load1_noabort(void *);
> void __hwasan_store1_noabort(void *);
> void __hwasan_load2_noabort(void *);
> diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c
> index 220b5d4c6876..32435d33583a 100644
> --- a/mm/kasan/sw_tags.c
> +++ b/mm/kasan/sw_tags.c
> @@ -70,6 +70,15 @@ u8 kasan_random_tag(void)
> return (u8)(state % (KASAN_TAG_MAX + 1));
> }
>
> +u8 __hwasan_generate_tag(void)
> +{
> + if (!kasan_enabled())
> + return KASAN_TAG_KERNEL;
> +
> + return kasan_random_tag();
> +}
> +EXPORT_SYMBOL(__hwasan_generate_tag);
> +
> bool kasan_check_range(const void *addr, size_t size, bool write,
> unsigned long ret_ip)
> {
> --
> 2.45.1
>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
WARNING: multiple messages have this Message-ID (diff)
From: Andrey Konovalov <andreyknvl@gmail.com>
To: Samuel Holland <samuel.holland@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
linux-riscv@lists.infradead.org,
Andrey Ryabinin <ryabinin.a.a@gmail.com>,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
kasan-dev@googlegroups.com, llvm@lists.linux.dev,
Catalin Marinas <catalin.marinas@arm.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Alexandre Ghiti <alexghiti@rivosinc.com>,
Will Deacon <will@kernel.org>,
Evgenii Stepanov <eugenis@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 3/9] kasan: sw_tags: Support outline stack tag generation
Date: Wed, 23 Oct 2024 20:42:03 +0200 [thread overview]
Message-ID: <CA+fCnZe49OGG_8J40_d9dTUBktY6qe-1dq1Y6Q+7hY9=xmUWQw@mail.gmail.com> (raw)
In-Reply-To: <20241022015913.3524425-4-samuel.holland@sifive.com>
On Tue, Oct 22, 2024 at 3:59 AM Samuel Holland
<samuel.holland@sifive.com> wrote:
>
> This allows stack tagging to be disabled at runtime by tagging all
> stack objects with the match-all tag. This is necessary on RISC-V,
> where a kernel with KASAN_SW_TAGS enabled is expected to boot on
> hardware without pointer masking support.
>
> Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
> ---
>
> Changes in v2:
> - Split the generic and RISC-V parts of stack tag generation control
> to avoid breaking bisectability
>
> mm/kasan/kasan.h | 2 ++
> mm/kasan/sw_tags.c | 9 +++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h
> index f438a6cdc964..72da5ddcceaa 100644
> --- a/mm/kasan/kasan.h
> +++ b/mm/kasan/kasan.h
> @@ -636,6 +636,8 @@ void *__asan_memset(void *addr, int c, ssize_t len);
> void *__asan_memmove(void *dest, const void *src, ssize_t len);
> void *__asan_memcpy(void *dest, const void *src, ssize_t len);
>
> +u8 __hwasan_generate_tag(void);
> +
> void __hwasan_load1_noabort(void *);
> void __hwasan_store1_noabort(void *);
> void __hwasan_load2_noabort(void *);
> diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c
> index 220b5d4c6876..32435d33583a 100644
> --- a/mm/kasan/sw_tags.c
> +++ b/mm/kasan/sw_tags.c
> @@ -70,6 +70,15 @@ u8 kasan_random_tag(void)
> return (u8)(state % (KASAN_TAG_MAX + 1));
> }
>
> +u8 __hwasan_generate_tag(void)
> +{
> + if (!kasan_enabled())
> + return KASAN_TAG_KERNEL;
> +
> + return kasan_random_tag();
> +}
> +EXPORT_SYMBOL(__hwasan_generate_tag);
> +
> bool kasan_check_range(const void *addr, size_t size, bool write,
> unsigned long ret_ip)
> {
> --
> 2.45.1
>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2024-10-23 18:42 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-22 1:57 [PATCH v2 0/9] kasan: RISC-V support for KASAN_SW_TAGS using pointer masking Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-22 1:57 ` [PATCH v2 1/9] kasan: sw_tags: Use arithmetic shift for shadow computation Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-23 18:41 ` Andrey Konovalov
2024-10-23 18:41 ` Andrey Konovalov
2025-02-10 15:22 ` Maciej Wieczor-Retman
2025-02-10 15:22 ` Maciej Wieczor-Retman
2025-02-10 15:52 ` Maciej Wieczor-Retman
2025-02-10 15:52 ` Maciej Wieczor-Retman
2025-02-10 22:57 ` Andrey Konovalov
2025-02-10 22:57 ` Andrey Konovalov
2025-02-11 8:58 ` Maciej Wieczor-Retman
2025-02-11 8:58 ` Maciej Wieczor-Retman
2025-02-11 13:42 ` Maciej Wieczor-Retman
2025-02-11 13:42 ` Maciej Wieczor-Retman
2025-02-11 18:06 ` Maciej Wieczor-Retman
2025-02-11 18:06 ` Maciej Wieczor-Retman
2025-02-13 1:21 ` Andrey Konovalov
2025-02-13 1:21 ` Andrey Konovalov
2025-02-13 1:28 ` Andrey Konovalov
2025-02-13 1:28 ` Andrey Konovalov
2025-02-13 16:20 ` Maciej Wieczor-Retman
2025-02-13 16:20 ` Maciej Wieczor-Retman
2025-02-14 8:20 ` Maciej Wieczor-Retman
2025-02-14 8:20 ` Maciej Wieczor-Retman
2025-02-17 16:13 ` Andrey Konovalov
2025-02-17 16:13 ` Andrey Konovalov
2025-02-17 18:37 ` Maciej Wieczor-Retman
2025-02-17 18:37 ` Maciej Wieczor-Retman
2025-02-17 19:00 ` Andrey Konovalov
2025-02-17 19:00 ` Andrey Konovalov
2024-10-22 1:57 ` [PATCH v2 2/9] kasan: sw_tags: Check kasan_flag_enabled at runtime Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-22 1:57 ` [PATCH v2 3/9] kasan: sw_tags: Support outline stack tag generation Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-23 18:42 ` Andrey Konovalov [this message]
2024-10-23 18:42 ` Andrey Konovalov
2024-10-22 1:57 ` [PATCH v2 4/9] kasan: sw_tags: Support tag widths less than 8 bits Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-22 19:30 ` kernel test robot
2024-10-22 19:30 ` kernel test robot
2024-10-22 19:51 ` kernel test robot
2024-10-22 19:51 ` kernel test robot
2024-10-22 1:57 ` [PATCH v2 5/9] riscv: mm: Log potential KASAN shadow alias Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-11-05 13:44 ` Alexandre Ghiti
2024-11-05 13:44 ` Alexandre Ghiti
2024-10-22 1:57 ` [PATCH v2 6/9] riscv: Do not rely on KASAN to define the memory layout Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-11-05 13:47 ` Alexandre Ghiti
2024-11-05 13:47 ` Alexandre Ghiti
2024-10-22 1:57 ` [PATCH v2 7/9] riscv: Align the sv39 linear map to 16 GiB Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-11-05 13:55 ` Alexandre Ghiti
2024-11-05 13:55 ` Alexandre Ghiti
2024-10-22 1:57 ` [PATCH v2 8/9] riscv: Add SBI Firmware Features extension definitions Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-22 1:57 ` [PATCH v2 9/9] riscv: Implement KASAN_SW_TAGS Samuel Holland
2024-10-22 1:57 ` Samuel Holland
2024-10-23 18:42 ` Andrey Konovalov
2024-10-23 18:42 ` Andrey Konovalov
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='CA+fCnZe49OGG_8J40_d9dTUBktY6qe-1dq1Y6Q+7hY9=xmUWQw@mail.gmail.com' \
--to=andreyknvl@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=alexghiti@rivosinc.com \
--cc=catalin.marinas@arm.com \
--cc=dvyukov@google.com \
--cc=eugenis@google.com \
--cc=glider@google.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=llvm@lists.linux.dev \
--cc=palmer@dabbelt.com \
--cc=ryabinin.a.a@gmail.com \
--cc=samuel.holland@sifive.com \
--cc=vincenzo.frascino@arm.com \
--cc=will@kernel.org \
/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.