diff options
| -rw-r--r-- | drivers/net/3c59x.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index a045559c81cf..85671adae455 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c | |||
| @@ -1994,10 +1994,9 @@ vortex_error(struct net_device *dev, int status) | |||
| 1994 | } | 1994 | } |
| 1995 | } | 1995 | } |
| 1996 | 1996 | ||
| 1997 | if (status & RxEarly) { /* Rx early is unused. */ | 1997 | if (status & RxEarly) /* Rx early is unused. */ |
| 1998 | vortex_rx(dev); | ||
| 1999 | iowrite16(AckIntr | RxEarly, ioaddr + EL3_CMD); | 1998 | iowrite16(AckIntr | RxEarly, ioaddr + EL3_CMD); |
| 2000 | } | 1999 | |
| 2001 | if (status & StatsFull) { /* Empty statistics. */ | 2000 | if (status & StatsFull) { /* Empty statistics. */ |
| 2002 | static int DoneDidThat; | 2001 | static int DoneDidThat; |
| 2003 | if (vortex_debug > 4) | 2002 | if (vortex_debug > 4) |
| @@ -2298,7 +2297,12 @@ vortex_interrupt(int irq, void *dev_id) | |||
| 2298 | if (status & (HostError | RxEarly | StatsFull | TxComplete | IntReq)) { | 2297 | if (status & (HostError | RxEarly | StatsFull | TxComplete | IntReq)) { |
| 2299 | if (status == 0xffff) | 2298 | if (status == 0xffff) |
| 2300 | break; | 2299 | break; |
| 2300 | if (status & RxEarly) | ||
| 2301 | vortex_rx(dev); | ||
| 2302 | spin_unlock(&vp->window_lock); | ||
| 2301 | vortex_error(dev, status); | 2303 | vortex_error(dev, status); |
| 2304 | spin_lock(&vp->window_lock); | ||
| 2305 | window_set(vp, 7); | ||
| 2302 | } | 2306 | } |
| 2303 | 2307 | ||
| 2304 | if (--work_done < 0) { | 2308 | if (--work_done < 0) { |
