Message ID | 20231115203401.2495875-31-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | kmsan: Enable on s390 | expand |
On Wed, Nov 15, 2023 at 9:35 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote: > > The unwind code can read uninitialized frames. Furthermore, even in > the good case, KMSAN does not emit shadow for backchains. Therefore > disable it for the unwinding functions. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > arch/s390/kernel/unwind_bc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/s390/kernel/unwind_bc.c b/arch/s390/kernel/unwind_bc.c > index 0ece156fdd7c..7ecaab24783f 100644 > --- a/arch/s390/kernel/unwind_bc.c > +++ b/arch/s390/kernel/unwind_bc.c > @@ -49,6 +49,7 @@ static inline bool is_final_pt_regs(struct unwind_state *state, > READ_ONCE_NOCHECK(regs->psw.mask) & PSW_MASK_PSTATE; > } > > +__no_kmsan_checks Please add some comments to the source file to back this annotation, so that the intent is not lost in git history.
On Thu, Nov 16, 2023 at 10:04 AM Alexander Potapenko <glider@google.com> wrote: > > On Wed, Nov 15, 2023 at 9:35 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote: > > > > The unwind code can read uninitialized frames. Furthermore, even in > > the good case, KMSAN does not emit shadow for backchains. Therefore > > disable it for the unwinding functions. > > > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > > --- > > arch/s390/kernel/unwind_bc.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/arch/s390/kernel/unwind_bc.c b/arch/s390/kernel/unwind_bc.c > > index 0ece156fdd7c..7ecaab24783f 100644 > > --- a/arch/s390/kernel/unwind_bc.c > > +++ b/arch/s390/kernel/unwind_bc.c > > @@ -49,6 +49,7 @@ static inline bool is_final_pt_regs(struct unwind_state *state, > > READ_ONCE_NOCHECK(regs->psw.mask) & PSW_MASK_PSTATE; > > } > > > > +__no_kmsan_checks > > Please add some comments to the source file to back this annotation, > so that the intent is not lost in git history. Apart from that, Reviewed-by: Alexander Potapenko <glider@google.com>
diff --git a/arch/s390/kernel/unwind_bc.c b/arch/s390/kernel/unwind_bc.c index 0ece156fdd7c..7ecaab24783f 100644 --- a/arch/s390/kernel/unwind_bc.c +++ b/arch/s390/kernel/unwind_bc.c @@ -49,6 +49,7 @@ static inline bool is_final_pt_regs(struct unwind_state *state, READ_ONCE_NOCHECK(regs->psw.mask) & PSW_MASK_PSTATE; } +__no_kmsan_checks bool unwind_next_frame(struct unwind_state *state) { struct stack_info *info = &state->stack_info; @@ -118,6 +119,7 @@ bool unwind_next_frame(struct unwind_state *state) } EXPORT_SYMBOL_GPL(unwind_next_frame); +__no_kmsan_checks void __unwind_start(struct unwind_state *state, struct task_struct *task, struct pt_regs *regs, unsigned long first_frame) {
The unwind code can read uninitialized frames. Furthermore, even in the good case, KMSAN does not emit shadow for backchains. Therefore disable it for the unwinding functions. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- arch/s390/kernel/unwind_bc.c | 2 ++ 1 file changed, 2 insertions(+)