Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 233867
b: refs/heads/master
c: 0197b08
h: refs/heads/master
i:
  233865: 01a3968
  233863: ec37b09
v: v3
  • Loading branch information
Michael Chan authored and David S. Miller committed Mar 2, 2011
1 parent de97b5b commit 05ede21
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 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: 107c3f4d42adc9af393019b795dd2177fbe9e465
refs/heads/master: 0197b087ed6384760656f1e4a620a3e92d8dc0b0
25 changes: 17 additions & 8 deletions trunk/drivers/net/cnic.c
Original file line number Diff line number Diff line change
Expand Up @@ -2914,26 +2914,35 @@ static void cnic_service_bnx2x_bh(unsigned long data)
{
struct cnic_dev *dev = (struct cnic_dev *) data;
struct cnic_local *cp = dev->cnic_priv;
u32 status_idx;
u32 status_idx, new_status_idx;

if (unlikely(!test_bit(CNIC_F_CNIC_UP, &dev->flags)))
return;

status_idx = cnic_service_bnx2x_kcq(dev, &cp->kcq1);
while (1) {
status_idx = cnic_service_bnx2x_kcq(dev, &cp->kcq1);

CNIC_WR16(dev, cp->kcq1.io_addr, cp->kcq1.sw_prod_idx + MAX_KCQ_IDX);
CNIC_WR16(dev, cp->kcq1.io_addr,
cp->kcq1.sw_prod_idx + MAX_KCQ_IDX);

if (BNX2X_CHIP_IS_E2(cp->chip_id)) {
status_idx = cnic_service_bnx2x_kcq(dev, &cp->kcq2);
if (!BNX2X_CHIP_IS_E2(cp->chip_id)) {
cnic_ack_bnx2x_int(dev, cp->bnx2x_igu_sb_id, USTORM_ID,
status_idx, IGU_INT_ENABLE, 1);
break;
}

new_status_idx = cnic_service_bnx2x_kcq(dev, &cp->kcq2);

if (new_status_idx != status_idx)
continue;

CNIC_WR16(dev, cp->kcq2.io_addr, cp->kcq2.sw_prod_idx +
MAX_KCQ_IDX);

cnic_ack_igu_sb(dev, cp->bnx2x_igu_sb_id, IGU_SEG_ACCESS_DEF,
status_idx, IGU_INT_ENABLE, 1);
} else {
cnic_ack_bnx2x_int(dev, cp->bnx2x_igu_sb_id, USTORM_ID,
status_idx, IGU_INT_ENABLE, 1);

break;
}
}

Expand Down

0 comments on commit 05ede21

Please sign in to comment.