diff options
author | zeal <zealcook@gmail.com> | 2009-11-16 04:58:10 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-17 07:51:47 (GMT) |
commit | 5c427ff9e4cc61625d48172ea082ae99e21eea6a (patch) | |
tree | 7c8b9b228f53cc5823ed6ef538e39b233cc4c77c /drivers/net/arm/ks8695net.c | |
parent | fa6cae143d58c74d800b8dbdd8b9f058614874f2 (diff) | |
download | linux-5c427ff9e4cc61625d48172ea082ae99e21eea6a.tar.xz |
KS8695: fix ks8695_rx() unreasonable action.
ks8695_rx() will call refill_buffers() for every incoming packet.
Its not necessary. We just need do it after finishing receiving thing.
And the 'RX dma engine' is in the same situation.
This blocks our user space application. The following patch may fix it.
Signed-off-by: zeal <zealcook@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/arm/ks8695net.c')
-rw-r--r-- | drivers/net/arm/ks8695net.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/arm/ks8695net.c b/drivers/net/arm/ks8695net.c index e15451a..be256b3 100644 --- a/drivers/net/arm/ks8695net.c +++ b/drivers/net/arm/ks8695net.c @@ -544,14 +544,13 @@ rx_finished: ksp->next_rx_desc_read = (last_rx_processed + 1) & MAX_RX_DESC_MASK; - - /* And refill the buffers */ - ks8695_refill_rxbuffers(ksp); - - /* Kick the RX DMA engine, in case it became - * suspended */ - ks8695_writereg(ksp, KS8695_DRSC, 0); } + /* And refill the buffers */ + ks8695_refill_rxbuffers(ksp); + + /* Kick the RX DMA engine, in case it became + * suspended */ + ks8695_writereg(ksp, KS8695_DRSC, 0); return received; } |