aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Daney <ddaney@caviumnetworks.com>2010-05-05 09:03:10 -0400
committerDavid S. Miller <davem@davemloft.net>2010-05-06 00:22:34 -0400
commita0cfa850ac639759cd68a121920f3e474ce9dfb1 (patch)
tree7e825478bf38dcb06063e7b228eb24c479320823
parent4d30b8013b2d82138d6900965fe9fcd062f2d06d (diff)
netdev: octeon_mgmt: Fix race manipulating irq bits.
Don't re-read the interrupt status register, clear the exact bits we will be testing. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/octeon/octeon_mgmt.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/octeon/octeon_mgmt.c b/drivers/net/octeon/octeon_mgmt.c
index b975a2fad953..633fa89c442f 100644
--- a/drivers/net/octeon/octeon_mgmt.c
+++ b/drivers/net/octeon/octeon_mgmt.c
@@ -598,8 +598,7 @@ static irqreturn_t octeon_mgmt_interrupt(int cpl, void *dev_id)
598 mixx_isr.u64 = cvmx_read_csr(CVMX_MIXX_ISR(port)); 598 mixx_isr.u64 = cvmx_read_csr(CVMX_MIXX_ISR(port));
599 599
600 /* Clear any pending interrupts */ 600 /* Clear any pending interrupts */
601 cvmx_write_csr(CVMX_MIXX_ISR(port), 601 cvmx_write_csr(CVMX_MIXX_ISR(port), mixx_isr.u64);
602 cvmx_read_csr(CVMX_MIXX_ISR(port)));
603 cvmx_read_csr(CVMX_MIXX_ISR(port)); 602 cvmx_read_csr(CVMX_MIXX_ISR(port));
604 603
605 if (mixx_isr.s.irthresh) { 604 if (mixx_isr.s.irthresh) {