linux-mips
[Top] [All Lists]

[PATCH 3/6] netdev: octeon_mgmt: Fix race manipulating irq bits.

To: netdev@vger.kernel.org
Subject: [PATCH 3/6] netdev: octeon_mgmt: Fix race manipulating irq bits.
From: David Daney <ddaney@caviumnetworks.com>
Date: Wed, 5 May 2010 16:03:10 -0700
Cc: linux-mips@linux-mips.org, David Daney <ddaney@caviumnetworks.com>
In-reply-to: <1273100593-11043-1-git-send-email-ddaney@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1273100593-11043-1-git-send-email-ddaney@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
Don't re-read the interrupt status register, clear the exact bits we
will be testing.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---
 drivers/net/octeon/octeon_mgmt.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/net/octeon/octeon_mgmt.c b/drivers/net/octeon/octeon_mgmt.c
index b975a2f..633fa89 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)
        mixx_isr.u64 = cvmx_read_csr(CVMX_MIXX_ISR(port));
 
        /* Clear any pending interrupts */
-       cvmx_write_csr(CVMX_MIXX_ISR(port),
-                      cvmx_read_csr(CVMX_MIXX_ISR(port)));
+       cvmx_write_csr(CVMX_MIXX_ISR(port), mixx_isr.u64);
        cvmx_read_csr(CVMX_MIXX_ISR(port));
 
        if (mixx_isr.s.irthresh) {
-- 
1.6.6.1


<Prev in Thread] Current Thread [Next in Thread>