Re: linux acpi (thunderbolt? bug)

From: Thomas Gleixner
Date: Mon Feb 19 2018 - 12:26:37 EST


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