On Mon, 19 Feb 2018, Randy Dunlap wrote:

> On 02/19/18 06:51, Thomas Gleixner wrote:
> >     } else {
> > +           /*
> > +            * Offline case: The current vector needs to be released in
> > +            * the matrix allocator.
> > +            */
> > +           if (apicd->vector &&
> 
> Drop the "apicd->vector &&" ? (redundant)

No. The else path is entered when

    apicd->vector == 0

or

    apicd->cpu is offline

So we need to check here for vector != 0 as otherwise we'd free vector 0
which is invalid. I'll add a comment explaining the mess.

> > +               apicd->vector != MANAGED_IRQ_SHUTDOWN_VECTOR) {
> > +                   irq_matrix_free(vector_matrix, apicd->cpu,
> > +                                   apicd->vector, managed);
> > +           }
> >             apicd->prev_vector = 0;
> >     }

Thanks,

        tglx

Reply via email to