Subject: Re: [PATCH net-next] net/mlx4_core: Test interrupts fail if not all comp vectors called request_irq

From: Matan Barak <[email-masked]>
Date: Tue, 6 Oct 2015 10:28:03 +0300

On 10/5/2015 11:12 PM, Or Gerlitz wrote:
> On Mon, Oct 5, 2015 at 6:24 PM, Carol Soto <[email-masked]> wrote:
>>
>>
>> On 10/4/2015 3:03 AM, Or Gerlitz wrote:
>>>
>>> On 9/29/2015 9:38 PM, [email-masked] wrote:
>>>>
>>>> From: Carol L Soto <[email-masked]>
>>>>
>>>> Test interrupts fails if not all completion vectors called
>>>> request_irq. This case can happen if only mlx4_en loads and
>>>> we have more completion vectors than rx rings.
>>>
>>>
>>> good catch! is this a bug since the driver 0-day or was introduced by
>>> some recent commit? in the latercase, please add a Fixes: tag before your
>>> S.O.B note.
>>
>> Probably the issue was introduced by this one
>> Fixes: c66fa19c405a ('net/mlx4: Add EQ pool')
>
> Matan, agree to the fix and analysis? if yes, Carol, please add the
> Fixes: tag to the change-log
> and anyway respin/submit the patch against/for net not net-next
>

Yeah, we should (obviously) only check EQs which are assigned to
interrupts, so skipping unassigned EQs is a good idea.
Good catch and thanks for the fix.

Matan

> Or.
>
>>
>>>>
>>>> Signed-off-by: Carol L Soto <[email-masked]>
>>>> ---
>>>>    drivers/net/ethernet/mellanox/mlx4/eq.c | 4 ++++
>>>>    1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/drivers/net/ethernet/mellanox/mlx4/eq.c
>>>> b/drivers/net/ethernet/mellanox/mlx4/eq.c
>>>> index 8e81e53..c344884 100644
>>>> --- a/drivers/net/ethernet/mellanox/mlx4/eq.c
>>>> +++ b/drivers/net/ethernet/mellanox/mlx4/eq.c
>>>> @@ -1364,6 +1364,10 @@ int mlx4_test_interrupts(struct mlx4_dev *dev)
>>>>         * and performing a NOP command
>>>>         */
>>>>        for(i = 0; !err && (i < dev->caps.num_comp_vectors); ++i) {
>>>> +        /* Make sure request_irq was called */
>>>> +        if (!priv->eq_table.eq[i].have_irq)
>>>> +            continue;
>>>> +
>>>>            /* Temporary use polling for command completions */
>>>>            mlx4_cmd_use_polling(dev);
>>>
>>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>> the body of a message to [email-masked]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html