On 02/19/18 09:26, Thomas Gleixner wrote:
> 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.

I just need more coffee.  I read the != (below) as ==.
:(

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


-- 
~Randy

Reply via email to