Merge branch 'qed-suppress-irrelevant-error-messages-on-HW-init'
Alexander Lobakin says: ==================== qed: suppress irrelevant error messages on HW init This raises the verbosity level of several error/warning messages on driver/module initialization, most of which are false-positives, and the one actively spamming the log for no reason. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Коммит
785ed9c32a
|
@ -2008,8 +2008,8 @@ static void qed_rdma_set_pf_params(struct qed_hwfn *p_hwfn,
|
|||
enum protocol_type proto;
|
||||
|
||||
if (p_hwfn->mcp_info->func_info.protocol == QED_PCI_ETH_RDMA) {
|
||||
DP_NOTICE(p_hwfn,
|
||||
"Current day drivers don't support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only\n");
|
||||
DP_VERBOSE(p_hwfn, QED_MSG_SP,
|
||||
"Current day drivers don't support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only\n");
|
||||
p_hwfn->hw_info.personality = QED_PCI_ETH_ROCE;
|
||||
}
|
||||
|
||||
|
|
|
@ -3102,7 +3102,7 @@ int qed_hw_init(struct qed_dev *cdev, struct qed_hw_init_params *p_params)
|
|||
}
|
||||
|
||||
/* Log and clear previous pglue_b errors if such exist */
|
||||
qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_main_ptt);
|
||||
qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_main_ptt, true);
|
||||
|
||||
/* Enable the PF's internal FID_enable in the PXP */
|
||||
rc = qed_pglueb_set_pfid_enable(p_hwfn, p_hwfn->p_main_ptt,
|
||||
|
|
|
@ -257,9 +257,10 @@ out:
|
|||
#define PGLUE_ATTENTION_ZLR_VALID (1 << 25)
|
||||
#define PGLUE_ATTENTION_ILT_VALID (1 << 23)
|
||||
|
||||
int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt)
|
||||
int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
|
||||
bool hw_init)
|
||||
{
|
||||
char msg[256];
|
||||
u32 tmp;
|
||||
|
||||
tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_TX_ERR_WR_DETAILS2);
|
||||
|
@ -273,22 +274,23 @@ int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
|
|||
details = qed_rd(p_hwfn, p_ptt,
|
||||
PGLUE_B_REG_TX_ERR_WR_DETAILS);
|
||||
|
||||
DP_NOTICE(p_hwfn,
|
||||
"Illegal write by chip to [%08x:%08x] blocked.\n"
|
||||
"Details: %08x [PFID %02x, VFID %02x, VF_VALID %02x]\n"
|
||||
"Details2 %08x [Was_error %02x BME deassert %02x FID_enable deassert %02x]\n",
|
||||
addr_hi, addr_lo, details,
|
||||
(u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_PFID),
|
||||
(u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_VFID),
|
||||
GET_FIELD(details,
|
||||
PGLUE_ATTENTION_DETAILS_VF_VALID) ? 1 : 0,
|
||||
tmp,
|
||||
GET_FIELD(tmp,
|
||||
PGLUE_ATTENTION_DETAILS2_WAS_ERR) ? 1 : 0,
|
||||
GET_FIELD(tmp,
|
||||
PGLUE_ATTENTION_DETAILS2_BME) ? 1 : 0,
|
||||
GET_FIELD(tmp,
|
||||
PGLUE_ATTENTION_DETAILS2_FID_EN) ? 1 : 0);
|
||||
snprintf(msg, sizeof(msg),
|
||||
"Illegal write by chip to [%08x:%08x] blocked.\n"
|
||||
"Details: %08x [PFID %02x, VFID %02x, VF_VALID %02x]\n"
|
||||
"Details2 %08x [Was_error %02x BME deassert %02x FID_enable deassert %02x]",
|
||||
addr_hi, addr_lo, details,
|
||||
(u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_PFID),
|
||||
(u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_VFID),
|
||||
!!GET_FIELD(details, PGLUE_ATTENTION_DETAILS_VF_VALID),
|
||||
tmp,
|
||||
!!GET_FIELD(tmp, PGLUE_ATTENTION_DETAILS2_WAS_ERR),
|
||||
!!GET_FIELD(tmp, PGLUE_ATTENTION_DETAILS2_BME),
|
||||
!!GET_FIELD(tmp, PGLUE_ATTENTION_DETAILS2_FID_EN));
|
||||
|
||||
if (hw_init)
|
||||
DP_VERBOSE(p_hwfn, NETIF_MSG_INTR, "%s\n", msg);
|
||||
else
|
||||
DP_NOTICE(p_hwfn, "%s\n", msg);
|
||||
}
|
||||
|
||||
tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_TX_ERR_RD_DETAILS2);
|
||||
|
@ -321,8 +323,14 @@ int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
|
|||
}
|
||||
|
||||
tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_TX_ERR_WR_DETAILS_ICPL);
|
||||
if (tmp & PGLUE_ATTENTION_ICPL_VALID)
|
||||
DP_NOTICE(p_hwfn, "ICPL error - %08x\n", tmp);
|
||||
if (tmp & PGLUE_ATTENTION_ICPL_VALID) {
|
||||
snprintf(msg, sizeof(msg), "ICPL error - %08x", tmp);
|
||||
|
||||
if (hw_init)
|
||||
DP_VERBOSE(p_hwfn, NETIF_MSG_INTR, "%s\n", msg);
|
||||
else
|
||||
DP_NOTICE(p_hwfn, "%s\n", msg);
|
||||
}
|
||||
|
||||
tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_MASTER_ZLR_ERR_DETAILS);
|
||||
if (tmp & PGLUE_ATTENTION_ZLR_VALID) {
|
||||
|
@ -361,7 +369,7 @@ int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
|
|||
|
||||
static int qed_pglueb_rbc_attn_cb(struct qed_hwfn *p_hwfn)
|
||||
{
|
||||
return qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_dpc_ptt);
|
||||
return qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_dpc_ptt, false);
|
||||
}
|
||||
|
||||
static int qed_fw_assertion(struct qed_hwfn *p_hwfn)
|
||||
|
|
|
@ -442,7 +442,7 @@ int qed_int_set_timer_res(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
|
|||
|
||||
#define QED_MAPPING_MEMORY_SIZE(dev) (NUM_OF_SBS(dev))
|
||||
|
||||
int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
|
||||
bool hw_init);
|
||||
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче