Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 289863
b: refs/heads/master
c: 5471aed
h: refs/heads/master
i:
  289861: 1a25fe9
  289859: 7cb9697
  289855: 0c34e79
v: v3
  • Loading branch information
Sritej Velaga authored and David S. Miller committed Feb 4, 2012
1 parent 411ee5f commit 73330ed
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: db608c129b5258dbdff9c221857a95bc2dc1128e
refs/heads/master: 5471aed0259298e4e258b8a9e403ebdf88ebcd56
1 change: 1 addition & 0 deletions trunk/drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h
Original file line number Diff line number Diff line change
Expand Up @@ -969,6 +969,7 @@ enum {
#define NX_RCODE_FATAL_ERROR 0x80000000
#define NX_FWERROR_PEGNUM(code) ((code) & 0xff)
#define NX_FWERROR_CODE(code) ((code >> 8) & 0xfffff)
#define NX_FWERROR_PEGSTAT1(code) ((code >> 8) & 0x1fffff)

#define FW_POLL_DELAY (2 * HZ)
#define FW_FAIL_THRESH 3
Expand Down
21 changes: 19 additions & 2 deletions trunk/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2596,6 +2596,7 @@ static int
netxen_check_health(struct netxen_adapter *adapter)
{
u32 state, heartbit;
u32 peg_status;
struct net_device *netdev = adapter->netdev;

state = NXRD32(adapter, NX_CRB_DEV_STATE);
Expand Down Expand Up @@ -2642,8 +2643,24 @@ netxen_check_health(struct netxen_adapter *adapter)

clear_bit(__NX_FW_ATTACHED, &adapter->state);

dev_info(&netdev->dev, "firmware hang detected\n");

dev_err(&netdev->dev, "firmware hang detected\n");
peg_status = NXRD32(adapter, NETXEN_PEG_HALT_STATUS1);
dev_err(&adapter->pdev->dev, "Dumping hw/fw registers\n"
"PEG_HALT_STATUS1: 0x%x, PEG_HALT_STATUS2: 0x%x,\n"
"PEG_NET_0_PC: 0x%x, PEG_NET_1_PC: 0x%x,\n"
"PEG_NET_2_PC: 0x%x, PEG_NET_3_PC: 0x%x,\n"
"PEG_NET_4_PC: 0x%x\n",
peg_status,
NXRD32(adapter, NETXEN_PEG_HALT_STATUS2),
NXRD32(adapter, NETXEN_CRB_PEG_NET_0 + 0x3c),
NXRD32(adapter, NETXEN_CRB_PEG_NET_1 + 0x3c),
NXRD32(adapter, NETXEN_CRB_PEG_NET_2 + 0x3c),
NXRD32(adapter, NETXEN_CRB_PEG_NET_3 + 0x3c),
NXRD32(adapter, NETXEN_CRB_PEG_NET_4 + 0x3c));
if (NX_FWERROR_PEGSTAT1(peg_status) == 0x67)
dev_err(&adapter->pdev->dev,
"Firmware aborted with error code 0x00006700. "
"Device is being reset.\n");
detach:
if ((auto_fw_reset == AUTO_FW_RESET_ENABLED) &&
!test_and_set_bit(__NX_RESETTING, &adapter->state))
Expand Down

0 comments on commit 73330ed

Please sign in to comment.