diff options
| author | Yishai Hadas <yishaih@mellanox.com> | 2015-01-25 09:59:38 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-01-25 17:43:14 -0500 |
| commit | f6bc11e42646e661e699a5593cbd1e9dba7191d0 (patch) | |
| tree | 184f01eb39d1c694b149b5b19bd6d06a86209a6f /include/linux/mlx4 | |
| parent | ad9a0bf08ffbf32b8f292c3bb78ca0f24bb8f6b2 (diff) | |
net/mlx4_core: Enhance the catas flow to support device reset
This includes:
- resetting the chip when a fatal error is detected (the current code
does not do this).
- exposing the ability to enter error state from outside the catas code
by calling its functionality. (E.g. FW Command timeout, AER error).
- managing a persistent device state. This is needed to sync between
reset flow cases.
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>
Diffstat (limited to 'include/linux/mlx4')
| -rw-r--r-- | include/linux/mlx4/device.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index da425d2f3708..7d5d317cb7a6 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
| @@ -411,6 +411,11 @@ enum { | |||
| 411 | MLX4_EQ_PORT_INFO_MSTR_SM_SL_CHANGE_MASK = 1 << 4, | 411 | MLX4_EQ_PORT_INFO_MSTR_SM_SL_CHANGE_MASK = 1 << 4, |
| 412 | }; | 412 | }; |
| 413 | 413 | ||
| 414 | enum { | ||
| 415 | MLX4_DEVICE_STATE_UP = 1 << 0, | ||
| 416 | MLX4_DEVICE_STATE_INTERNAL_ERROR = 1 << 1, | ||
| 417 | }; | ||
| 418 | |||
| 414 | #define MSTR_SM_CHANGE_MASK (MLX4_EQ_PORT_INFO_MSTR_SM_SL_CHANGE_MASK | \ | 419 | #define MSTR_SM_CHANGE_MASK (MLX4_EQ_PORT_INFO_MSTR_SM_SL_CHANGE_MASK | \ |
| 415 | MLX4_EQ_PORT_INFO_MSTR_SM_LID_CHANGE_MASK) | 420 | MLX4_EQ_PORT_INFO_MSTR_SM_LID_CHANGE_MASK) |
| 416 | 421 | ||
| @@ -753,6 +758,8 @@ struct mlx4_dev_persistent { | |||
| 753 | enum mlx4_port_type curr_port_poss_type[MLX4_MAX_PORTS + 1]; | 758 | enum mlx4_port_type curr_port_poss_type[MLX4_MAX_PORTS + 1]; |
| 754 | struct work_struct catas_work; | 759 | struct work_struct catas_work; |
| 755 | struct workqueue_struct *catas_wq; | 760 | struct workqueue_struct *catas_wq; |
| 761 | struct mutex device_state_mutex; /* protect HW state */ | ||
| 762 | u8 state; | ||
| 756 | }; | 763 | }; |
| 757 | 764 | ||
| 758 | struct mlx4_dev { | 765 | struct mlx4_dev { |
