bnx2x: validate FW trace prior to its printing
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
cb4dca2776
Коммит
de1288041d
|
@ -1129,6 +1129,8 @@ struct shm_dev_info { /* size */
|
||||||
|
|
||||||
#define FW_ACK_NUM_OF_POLL (FW_ACK_TIME_OUT_MS/FW_ACK_POLL_TIME_MS)
|
#define FW_ACK_NUM_OF_POLL (FW_ACK_TIME_OUT_MS/FW_ACK_POLL_TIME_MS)
|
||||||
|
|
||||||
|
#define MFW_TRACE_SIGNATURE 0x54524342
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Driver <-> FW Mailbox *
|
* Driver <-> FW Mailbox *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
|
@ -719,7 +719,17 @@ void bnx2x_fw_dump_lvl(struct bnx2x *bp, const char *lvl)
|
||||||
trace_shmem_base = bp->common.shmem_base;
|
trace_shmem_base = bp->common.shmem_base;
|
||||||
else
|
else
|
||||||
trace_shmem_base = SHMEM2_RD(bp, other_shmem_base_addr);
|
trace_shmem_base = SHMEM2_RD(bp, other_shmem_base_addr);
|
||||||
addr = trace_shmem_base - 0x0800 + 4;
|
addr = trace_shmem_base - 0x800;
|
||||||
|
|
||||||
|
/* validate TRCB signature */
|
||||||
|
mark = REG_RD(bp, addr);
|
||||||
|
if (mark != MFW_TRACE_SIGNATURE) {
|
||||||
|
BNX2X_ERR("Trace buffer signature is missing.");
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* read cyclic buffer pointer */
|
||||||
|
addr += 4;
|
||||||
mark = REG_RD(bp, addr);
|
mark = REG_RD(bp, addr);
|
||||||
mark = (CHIP_IS_E1x(bp) ? MCP_REG_MCPR_SCRATCH : MCP_A_REG_MCPR_SCRATCH)
|
mark = (CHIP_IS_E1x(bp) ? MCP_REG_MCPR_SCRATCH : MCP_A_REG_MCPR_SCRATCH)
|
||||||
+ ((mark + 0x3) & ~0x3) - 0x08000000;
|
+ ((mark + 0x3) & ~0x3) - 0x08000000;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче