Messages in this thread | | | From | Andrey Konovalov <> | Date | Tue, 14 Mar 2023 18:56:15 +0100 | Subject | Re: [PATCH 5/5] kasan: suppress recursive reports for HW_TAGS |
| |
On Mon, Mar 13, 2023 at 12:20 PM Marco Elver <elver@google.com> wrote: > > > + * Hardware Tag-Based KASAN instead relies on: > > + * For #1: Resetting tags via kasan_reset_tag(). > > + * For #2: Supression of tag checks via CPU, see report_suppress_start/end(). > > Typo: "Suppression"
Will fix in v2.
> > +static void report_suppress_start(void) > > +{ > > +#ifdef CONFIG_KASAN_HW_TAGS > > + /* > > + * Disable migration for the duration of printing a KASAN report, as > > + * hw_suppress_tag_checks_start() disables checks on the current CPU. > > + */ > > + migrate_disable(); > > This still allows this task to be preempted by another task. If the > other task is scheduled in right after hw_suppress_tag_checks_start() > then there won't be any tag checking in that task. If HW-tags KASAN is > used as a mitigation technique, that may unnecessarily weaken KASAN, > because right after report_suppress_start(), it does > spin_lock_irqsave() which disables interrupts (and thereby preemption) > anyway. > > Why not just use preempt_disable()?
Ah, yes, I intended to do that but forgot to make the change.
I'll wait for comments from arm64 maintainers on the other patches and then send v2 with a fix.
Thank you, Marco!
| |