Commit cdc1d868 authored by Shai Malin's avatar Shai Malin Committed by David S. Miller

qed: Skip DORQ attention handling during recovery

The device recovery flow will reset the entire HW device, in that case
the DORQ HW block attention is redundant.
Signed-off-by: default avatarAriel Elior <aelior@marvell.com>
Signed-off-by: default avatarShai Malin <smalin@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 995c3d49
...@@ -464,12 +464,19 @@ static int qed_dorq_attn_int_sts(struct qed_hwfn *p_hwfn) ...@@ -464,12 +464,19 @@ static int qed_dorq_attn_int_sts(struct qed_hwfn *p_hwfn)
u32 int_sts, first_drop_reason, details, address, all_drops_reason; u32 int_sts, first_drop_reason, details, address, all_drops_reason;
struct qed_ptt *p_ptt = p_hwfn->p_dpc_ptt; struct qed_ptt *p_ptt = p_hwfn->p_dpc_ptt;
int_sts = qed_rd(p_hwfn, p_ptt, DORQ_REG_INT_STS);
if (int_sts == 0xdeadbeaf) {
DP_NOTICE(p_hwfn->cdev,
"DORQ is being reset, skipping int_sts handler\n");
return 0;
}
/* int_sts may be zero since all PFs were interrupted for doorbell /* int_sts may be zero since all PFs were interrupted for doorbell
* overflow but another one already handled it. Can abort here. If * overflow but another one already handled it. Can abort here. If
* This PF also requires overflow recovery we will be interrupted again. * This PF also requires overflow recovery we will be interrupted again.
* The masked almost full indication may also be set. Ignoring. * The masked almost full indication may also be set. Ignoring.
*/ */
int_sts = qed_rd(p_hwfn, p_ptt, DORQ_REG_INT_STS);
if (!(int_sts & ~DORQ_REG_INT_STS_DORQ_FIFO_AFULL)) if (!(int_sts & ~DORQ_REG_INT_STS_DORQ_FIFO_AFULL))
return 0; return 0;
...@@ -528,6 +535,9 @@ static int qed_dorq_attn_int_sts(struct qed_hwfn *p_hwfn) ...@@ -528,6 +535,9 @@ static int qed_dorq_attn_int_sts(struct qed_hwfn *p_hwfn)
static int qed_dorq_attn_cb(struct qed_hwfn *p_hwfn) static int qed_dorq_attn_cb(struct qed_hwfn *p_hwfn)
{ {
if (p_hwfn->cdev->recov_in_prog)
return 0;
p_hwfn->db_recovery_info.dorq_attn = true; p_hwfn->db_recovery_info.dorq_attn = true;
qed_dorq_attn_overflow(p_hwfn); qed_dorq_attn_overflow(p_hwfn);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment