diff options
| author | David Daney <ddaney@caviumnetworks.com> | 2010-05-05 09:03:10 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-05-06 00:22:34 -0400 |
| commit | a0cfa850ac639759cd68a121920f3e474ce9dfb1 (patch) | |
| tree | 7e825478bf38dcb06063e7b228eb24c479320823 | |
| parent | 4d30b8013b2d82138d6900965fe9fcd062f2d06d (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.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 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) { |
