net/mlx5: Cleanup IRQs in case of unload failure
authorMoshe Shemesh <moshe@mellanox.com>
Tue, 21 Nov 2017 13:15:51 +0000 (15:15 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Tue, 19 Dec 2017 21:24:05 +0000 (23:24 +0200)
commitd6b2785cd55ee72e9608762650b3ef299f801b1b
tree7328309ef2660338ee7ae1c35a16373ff5120af4
parent139ed6c6c46aa3d8970a086b8e0cf1f3522f5d4a
net/mlx5: Cleanup IRQs in case of unload failure

When mlx5_stop_eqs fails to destroy any of the eqs it returns with an error.
In such failure flow the function will return without
releasing all EQs irqs and then pci_free_irq_vectors will fail.
Fix by only warn on destroy EQ failure and continue to release other
EQs and their irqs.

It fixes the following kernel trace:
kernel: kernel BUG at drivers/pci/msi.c:352!
...
...
kernel: Call Trace:
kernel: pci_disable_msix+0xd3/0x100
kernel: pci_free_irq_vectors+0xe/0x20
kernel: mlx5_load_one.isra.17+0x9f5/0xec0 [mlx5_core]

Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eq.c
include/linux/mlx5/driver.h