Przeglądaj źródła

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>
David Daney 15 lat temu
rodzic
commit
a0cfa850ac
1 zmienionych plików z 1 dodań i 2 usunięć
  1. 1 2
      drivers/net/octeon/octeon_mgmt.c

+ 1 - 2
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) {