On Mon, 8 Jul 2019, Linus Torvalds wrote:

> On Mon, Jul 8, 2019 at 2:22 AM Thomas Gleixner <t...@linutronix.de> wrote:
> >
> > @@ -643,9 +644,11 @@ static unsigned long ptrace_get_debugreg(struct 
> > task_struct *tsk, int n)
> >  {
> >         struct thread_struct *thread = &tsk->thread;
> >         unsigned long val = 0;
> > +       int index = n;
> >
> >         if (n < HBP_NUM) {
> > -               struct perf_event *bp = thread->ptrace_bps[n];
> > +               index = array_index_nospec(index, HBP_NUM);
> > +               struct perf_event *bp = thread->ptrace_bps[index];
> 
> This causes a new warning:
> 
>    warning: ISO C90 forbids mixed declarations and code
> 
> and I'm fixing it up in the merge as follows:

Ooops. No idea how that slipped through. Sorry!

> @@@ -633,9 -644,11 +634,10 @@@ static unsigned long ptrace_get_debugre
>   {
>         struct thread_struct *thread = &tsk->thread;
>         unsigned long val = 0;
>  -      int index = n;
> 
>         if (n < HBP_NUM) {
> -               struct perf_event *bp = thread->ptrace_bps[n];
>  -              index = array_index_nospec(index, HBP_NUM);
> ++              int index = array_index_nospec(n, HBP_NUM);
> +               struct perf_event *bp = thread->ptrace_bps[index];
> 
>                 if (bp)
>                         val = bp->hw.info.address;
> 
> Holler if I did something stupid.

Obviously correct.

Thanks for fixing it up.

       tglx


Reply via email to