Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 210569
b: refs/heads/master
c: d053de9
h: refs/heads/master
i:
  210567: 442fa3c
v: v3
  • Loading branch information
Ajit Khaparde authored and David S. Miller committed Sep 3, 2010
1 parent 518acd9 commit c36352f
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 27 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: 1ef78abec6b5e9e3062e3ae6660eabaf055a718d
refs/heads/master: d053de911bff69ba7cdda36d3107c1da0fba7ccd
2 changes: 1 addition & 1 deletion trunk/drivers/net/benet/be_cmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ static int be_mbox_db_ready_wait(struct be_adapter *adapter, void __iomem *db)

if (msecs > 4000) {
dev_err(&adapter->pdev->dev, "mbox poll timed out\n");
be_dump_ue(adapter);
be_detect_dump_ue(adapter);
return -1;
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/benet/be_cmds.h
Original file line number Diff line number Diff line change
Expand Up @@ -992,5 +992,5 @@ extern int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num,
extern int be_cmd_get_phy_info(struct be_adapter *adapter,
struct be_dma_mem *cmd);
extern int be_cmd_set_qos(struct be_adapter *adapter, u32 bps, u32 domain);
extern void be_dump_ue(struct be_adapter *adapter);
extern void be_detect_dump_ue(struct be_adapter *adapter);

32 changes: 8 additions & 24 deletions trunk/drivers/net/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1750,26 +1750,7 @@ static int be_poll_tx_mcc(struct napi_struct *napi, int budget)
return 1;
}

static inline bool be_detect_ue(struct be_adapter *adapter)
{
u32 online0 = 0, online1 = 0;

pci_read_config_dword(adapter->pdev, PCICFG_ONLINE0, &online0);

pci_read_config_dword(adapter->pdev, PCICFG_ONLINE1, &online1);

if (!online0 || !online1) {
adapter->ue_detected = true;
dev_err(&adapter->pdev->dev,
"UE Detected!! online0=%d online1=%d\n",
online0, online1);
return true;
}

return false;
}

void be_dump_ue(struct be_adapter *adapter)
void be_detect_dump_ue(struct be_adapter *adapter)
{
u32 ue_status_lo, ue_status_hi, ue_status_lo_mask, ue_status_hi_mask;
u32 i;
Expand All @@ -1786,6 +1767,11 @@ void be_dump_ue(struct be_adapter *adapter)
ue_status_lo = (ue_status_lo & (~ue_status_lo_mask));
ue_status_hi = (ue_status_hi & (~ue_status_hi_mask));

if (ue_status_lo || ue_status_hi) {
adapter->ue_detected = true;
dev_err(&adapter->pdev->dev, "UE Detected!!\n");
}

if (ue_status_lo) {
for (i = 0; ue_status_lo; ue_status_lo >>= 1, i++) {
if (ue_status_lo & 1)
Expand Down Expand Up @@ -1821,10 +1807,8 @@ static void be_worker(struct work_struct *work)
adapter->rx_post_starved = false;
be_post_rx_frags(adapter);
}
if (!adapter->ue_detected) {
if (be_detect_ue(adapter))
be_dump_ue(adapter);
}
if (!adapter->ue_detected)
be_detect_dump_ue(adapter);

schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000));
}
Expand Down

0 comments on commit c36352f

Please sign in to comment.