mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
qed: Add infrastructure for error detection and recovery
This patch adds the detection and handling of a parity error ("process kill event"), including the update of the protocol drivers, and the prevention of any HW access that will lead to device access towards the host while recovery is in progress. It also provides the means for the protocol drivers to trigger a recovery process on their decision. Signed-off-by: Tomer Tayar <tomer.tayar@cavium.com> Signed-off-by: Ariel Elior <ariel.elior@cavium.com> Signed-off-by: Michal Kalderon <michal.kalderon@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
666db4862f
commit
64515dc899
11 changed files with 251 additions and 16 deletions
|
@ -763,6 +763,7 @@ struct qed_probe_params {
|
|||
u32 dp_module;
|
||||
u8 dp_level;
|
||||
bool is_vf;
|
||||
bool recov_in_prog;
|
||||
};
|
||||
|
||||
#define QED_DRV_VER_STR_SIZE 12
|
||||
|
@ -809,6 +810,7 @@ struct qed_common_cb_ops {
|
|||
void (*arfs_filter_op)(void *dev, void *fltr, u8 fw_rc);
|
||||
void (*link_update)(void *dev,
|
||||
struct qed_link_output *link);
|
||||
void (*schedule_recovery_handler)(void *dev);
|
||||
void (*dcbx_aen)(void *dev, struct qed_dcbx_get *get, u32 mib_type);
|
||||
void (*get_generic_tlv_data)(void *dev, struct qed_generic_tlvs *data);
|
||||
void (*get_protocol_tlv_data)(void *dev, void *data);
|
||||
|
@ -1056,6 +1058,24 @@ struct qed_common_ops {
|
|||
int (*db_recovery_del)(struct qed_dev *cdev,
|
||||
void __iomem *db_addr, void *db_data);
|
||||
|
||||
/**
|
||||
* @brief recovery_process - Trigger a recovery process
|
||||
*
|
||||
* @param cdev
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
*/
|
||||
int (*recovery_process)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief recovery_prolog - Execute the prolog operations of a recovery process
|
||||
*
|
||||
* @param cdev
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
*/
|
||||
int (*recovery_prolog)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief update_drv_state - API to inform the change in the driver state.
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue