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

From: Carol Soto <[email-masked]>
Date: Mon, 5 Oct 2015 10:24:19 -0500

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')
>>
>> 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);
>