diff mbox

[2/2,v2] KS8695: fix ks8695_rx() unreasonable action.

Message ID 4b016886.16115e0a.355d.ffffca52@mx.google.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

zealcook@gmail.com Nov. 16, 2009, 2:58 p.m. UTC
From: zeal <zealcook@gmail.com>

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>
---
 drivers/net/arm/ks8695net.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

Comments

Figo.zhang Nov. 12, 2009, 5:16 p.m. UTC | #1
On Mon, 2009-11-16 at 22:58 +0800, zeal wrote:
> From: zeal <zealcook@gmail.com>
> 
> 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.
> 

yes, it is right.

Best,
Figo.zhang

> Signed-off-by: zeal <zealcook@gmail.com>
> ---
>  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;
>  }
>  


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Nov. 17, 2009, 7:52 a.m. UTC | #2
From: "Figo.zhang" <figo1802@gmail.com>
Date: Fri, 13 Nov 2009 01:16:34 +0800

> On Mon, 2009-11-16 at 22:58 +0800, zeal wrote:
>> From: zeal <zealcook@gmail.com>
>> 
>> 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.
>> 
> 
> yes, it is right.
> 
> Best,
> Figo.zhang
> 
>> Signed-off-by: zeal <zealcook@gmail.com>

Patch applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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;
 }