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