aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFigo.zhang <figo1802@gmail.com>2010-03-05 11:36:02 -0500
committerDavid S. Miller <davem@davemloft.net>2010-03-07 18:25:49 -0500
commitb96b894c518bc7399e6b86b635b5e8cd7356a8e9 (patch)
tree0cb2533a8fe3fe2ef9919cbc9ad8ebea3adaefad
parent3a22813a5aaf8e8c72be575dabe0ba26f9352f4d (diff)
fix a race in ks8695_poll
fix a race at the end of NAPI processing in ks8695_poll() function. Signed-off-by:Figo.zhang <figo1802@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/arm/ks8695net.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/arm/ks8695net.c b/drivers/net/arm/ks8695net.c
index 8ca639127dbc..a1d4188c430b 100644
--- a/drivers/net/arm/ks8695net.c
+++ b/drivers/net/arm/ks8695net.c
@@ -575,9 +575,9 @@ static int ks8695_poll(struct napi_struct *napi, int budget)
575 if (work_done < budget) { 575 if (work_done < budget) {
576 unsigned long flags; 576 unsigned long flags;
577 spin_lock_irqsave(&ksp->rx_lock, flags); 577 spin_lock_irqsave(&ksp->rx_lock, flags);
578 __napi_complete(napi);
578 /*enable rx interrupt*/ 579 /*enable rx interrupt*/
579 writel(isr | mask_bit, KS8695_IRQ_VA + KS8695_INTEN); 580 writel(isr | mask_bit, KS8695_IRQ_VA + KS8695_INTEN);
580 __napi_complete(napi);
581 spin_unlock_irqrestore(&ksp->rx_lock, flags); 581 spin_unlock_irqrestore(&ksp->rx_lock, flags);
582 } 582 }
583 return work_done; 583 return work_done;