mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 17:41:44 +00:00
bnx2x: prevent masked MCP parities from appearing
During flows which mask block attentions (e.g., register dump) all parities are masked. However, unlike other blocks the MCP's attention is not masked inside the block but rather the indication to the driver. If another attention (e.g., link change) will occour while there's an MCP parity, the driver will ignore the fact that the parity is masked and erroneously report a parity. This patch forces the driver to read the MCP masking while checking for parities. Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Ariel Elior <ariele@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d9d8186267
commit
0a5ccb759d
@ -4703,6 +4703,14 @@ bool bnx2x_chk_parity_attn(struct bnx2x *bp, bool *global, bool print)
|
||||
attn.sig[3] = REG_RD(bp,
|
||||
MISC_REG_AEU_AFTER_INVERT_4_FUNC_0 +
|
||||
port*4);
|
||||
/* Since MCP attentions can't be disabled inside the block, we need to
|
||||
* read AEU registers to see whether they're currently disabled
|
||||
*/
|
||||
attn.sig[3] &= ((REG_RD(bp,
|
||||
!port ? MISC_REG_AEU_ENABLE4_FUNC_0_OUT_0
|
||||
: MISC_REG_AEU_ENABLE4_FUNC_1_OUT_0) &
|
||||
MISC_AEU_ENABLE_MCP_PRTY_BITS) |
|
||||
~MISC_AEU_ENABLE_MCP_PRTY_BITS);
|
||||
|
||||
if (!CHIP_IS_E1x(bp))
|
||||
attn.sig[4] = REG_RD(bp,
|
||||
|
Loading…
Reference in New Issue
Block a user