Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 26575
b: refs/heads/master
c: e71ebd7
h: refs/heads/master
i:
  26573: f85fa3d
  26571: dd75620
  26567: ac4757b
  26559: 6db1b83
v: v3
  • Loading branch information
Stephen Hemminger committed May 8, 2006
1 parent 26f0445 commit 0b3554b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 15 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: 01bd75645f94d49cb7ffd61022890166ce00ec2a
refs/heads/master: e71ebd73276cc21efc74aba4118ef037cd32e50a
21 changes: 7 additions & 14 deletions trunk/drivers/net/sky2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1865,35 +1865,28 @@ static inline void sky2_tx_done(struct net_device *dev, u16 last)
static int sky2_status_intr(struct sky2_hw *hw, int to_do)
{
int work_done = 0;
u16 hwidx = sky2_read16(hw, STAT_PUT_IDX);

rmb();

for(;;) {
while (hw->st_idx != hwidx) {
struct sky2_status_le *le = hw->st_le + hw->st_idx;
struct net_device *dev;
struct sky2_port *sky2;
struct sk_buff *skb;
u32 status;
u16 length;
u8 link, opcode;

opcode = le->opcode;
if (!opcode)
break;
opcode &= ~HW_OWNER;

hw->st_idx = RING_NEXT(hw->st_idx, STATUS_RING_SIZE);
le->opcode = 0;

link = le->link;
BUG_ON(link >= 2);
dev = hw->dev[link];
BUG_ON(le->link >= 2);
dev = hw->dev[le->link];

sky2 = netdev_priv(dev);
length = le->length;
status = le->status;

switch (opcode) {
switch (le->opcode & ~HW_OWNER) {
case OP_RXSTAT:
skb = sky2_receive(sky2, length, status);
if (!skb)
Expand Down Expand Up @@ -1944,8 +1937,8 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do)
default:
if (net_ratelimit())
printk(KERN_WARNING PFX
"unknown status opcode 0x%x\n", opcode);
break;
"unknown status opcode 0x%x\n", le->opcode);
goto exit_loop;
}
}

Expand Down

0 comments on commit 0b3554b

Please sign in to comment.