summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeal <zealcook@gmail.com>2009-11-16 04:58:10 +0000
committerDavid S. Miller <davem@davemloft.net>2009-11-16 23:51:47 -0800
commit5c427ff9e4cc61625d48172ea082ae99e21eea6a (patch)
tree7c8b9b228f53cc5823ed6ef538e39b233cc4c77c
parentfa6cae143d58c74d800b8dbdd8b9f058614874f2 (diff)
downloadlinux-3.10-5c427ff9e4cc61625d48172ea082ae99e21eea6a.tar.gz
linux-3.10-5c427ff9e4cc61625d48172ea082ae99e21eea6a.tar.bz2
linux-3.10-5c427ff9e4cc61625d48172ea082ae99e21eea6a.zip
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>
-rw-r--r--drivers/net/arm/ks8695net.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/arm/ks8695net.c b/drivers/net/arm/ks8695net.c
index e15451a8510..be256b34cea 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;
}