diff options
author | Michael Chan <mchan@broadcom.com> | 2005-04-25 22:14:32 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-04-25 22:14:32 (GMT) |
commit | 52f6d697dc0f2c039e8413e780b0f45ddf8161fc (patch) | |
tree | 41e9c7d722b4cd83ed2f6d5c0ae13581e309ec75 /drivers/net/tg3.c | |
parent | 483ba50bd41d14d5325d6cd9935de86a982d08a2 (diff) | |
download | linux-52f6d697dc0f2c039e8413e780b0f45ddf8161fc.tar.xz |
[TG3]: Refresh hw index in tg3_rx()
This patch refreshes the hw rx producer in tg3_rx() so that additional
work posted by the hardware can be processed.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r-- | drivers/net/tg3.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index e53c1dc..92b0e49 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c @@ -2802,6 +2802,12 @@ next_pkt: next_pkt_nopost: sw_idx++; sw_idx %= TG3_RX_RCB_RING_SIZE(tp); + + /* Refresh hw_idx to see if there is new work */ + if (sw_idx == hw_idx) { + hw_idx = tp->hw_status->idx[0].rx_producer; + rmb(); + } } /* ACK the status ring. */ |