diff options
| author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2003-07-17 19:44:31 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-07-17 19:44:31 -0700 |
| commit | 69c1e9d69a8ff41db0673f428d9de8d7065cacee (patch) | |
| tree | 42b5a4b81d4988b65afb30622c21aa57bff9c3a0 | |
| parent | 0d1f24961955f23132945eac983c8b114480b807 (diff) | |
[PATCH] use cpu_relax in seq8005
| -rw-r--r-- | drivers/net/seeq8005.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/seeq8005.c b/drivers/net/seeq8005.c index 08cd543eda47..aeb0ffe105a8 100644 --- a/drivers/net/seeq8005.c +++ b/drivers/net/seeq8005.c @@ -700,7 +700,8 @@ static void hardware_send_packet(struct net_device * dev, char *buf, int length) * wait_for_buffer * * This routine waits for the SEEQ chip to assert that the FIFO is ready - * by checking for a window interrupt, and then clearing it + * by checking for a window interrupt, and then clearing it. This has to + * occur in the interrupt handler! */ inline void wait_for_buffer(struct net_device * dev) { @@ -710,7 +711,7 @@ inline void wait_for_buffer(struct net_device * dev) tmp = jiffies + HZ; while ( ( ((status=inw(SEEQ_STATUS)) & SEEQSTAT_WINDOW_INT) != SEEQSTAT_WINDOW_INT) && time_before(jiffies, tmp)) - mb(); + cpu_relax(); if ( (status & SEEQSTAT_WINDOW_INT) == SEEQSTAT_WINDOW_INT) outw( SEEQCMD_WINDOW_INT_ACK | (status & SEEQCMD_INT_MASK), SEEQ_CMD); |
