net/mlx4_core: Avoid repeated calls to pci enable/disable
Maintain the PCI status and provide wrappers for enabling and disabling
the PCI device. Performing the actions more than once without doing
its opposite results in warning logs.
This occurred when EEH hotplugged the device causing a warning for
disabling an already disabled device.
Fixes: 2ba5fbd62b
('net/mlx4_core: Handle AER flow properly')
Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
c12833acff
commit
4bfd2e6e53
@@ -828,6 +828,11 @@ struct mlx4_vf_dev {
|
||||
u8 n_ports;
|
||||
};
|
||||
|
||||
enum mlx4_pci_status {
|
||||
MLX4_PCI_STATUS_DISABLED,
|
||||
MLX4_PCI_STATUS_ENABLED,
|
||||
};
|
||||
|
||||
struct mlx4_dev_persistent {
|
||||
struct pci_dev *pdev;
|
||||
struct mlx4_dev *dev;
|
||||
@@ -841,6 +846,8 @@ struct mlx4_dev_persistent {
|
||||
u8 state;
|
||||
struct mutex interface_state_mutex; /* protect SW state */
|
||||
u8 interface_state;
|
||||
struct mutex pci_status_mutex; /* sync pci state */
|
||||
enum mlx4_pci_status pci_status;
|
||||
};
|
||||
|
||||
struct mlx4_dev {
|
||||
|
Reference in New Issue
Block a user