net/qede/base: add DPC sync after PF stop
Add DPC sync after stopping the physical funciton to allow clean up of asyncronous events. Post this the driver don't expect the FW to send async events. Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
This commit is contained in:
parent
f32557f955
commit
cbc2359676
@ -2804,6 +2804,12 @@ enum _ecore_status_t ecore_hw_stop(struct ecore_dev *p_dev)
|
||||
rc2 = ECORE_UNKNOWN_ERROR;
|
||||
}
|
||||
|
||||
OSAL_DPC_SYNC(p_hwfn);
|
||||
|
||||
/* After this point we don't expect the FW to send us async
|
||||
* events
|
||||
*/
|
||||
|
||||
/* perform debug action after PF stop was sent */
|
||||
OSAL_AFTER_PF_STOP((void *)p_dev, p_hwfn->my_id);
|
||||
|
||||
|
@ -283,8 +283,10 @@ ecore_async_event_completion(struct ecore_hwfn *p_hwfn,
|
||||
{
|
||||
ecore_spq_async_comp_cb cb;
|
||||
|
||||
if (!p_hwfn->p_spq || (p_eqe->protocol_id >= MAX_PROTOCOL_TYPE))
|
||||
if (p_eqe->protocol_id >= MAX_PROTOCOL_TYPE) {
|
||||
DP_ERR(p_hwfn, "Wrong protocol: %d\n", p_eqe->protocol_id);
|
||||
return ECORE_INVAL;
|
||||
}
|
||||
|
||||
cb = p_hwfn->p_spq->async_comp_cb[p_eqe->protocol_id];
|
||||
if (cb) {
|
||||
@ -339,10 +341,16 @@ enum _ecore_status_t ecore_eq_completion(struct ecore_hwfn *p_hwfn,
|
||||
{
|
||||
struct ecore_eq *p_eq = cookie;
|
||||
struct ecore_chain *p_chain = &p_eq->chain;
|
||||
u16 fw_cons_idx = 0;
|
||||
enum _ecore_status_t rc = 0;
|
||||
|
||||
if (!p_hwfn->p_spq) {
|
||||
DP_ERR(p_hwfn, "Unexpected NULL p_spq\n");
|
||||
return ECORE_INVAL;
|
||||
}
|
||||
|
||||
/* take a snapshot of the FW consumer */
|
||||
u16 fw_cons_idx = OSAL_LE16_TO_CPU(*p_eq->p_fw_cons);
|
||||
fw_cons_idx = OSAL_LE16_TO_CPU(*p_eq->p_fw_cons);
|
||||
|
||||
DP_VERBOSE(p_hwfn, ECORE_MSG_SPQ, "fw_cons_idx %x\n", fw_cons_idx);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user