Browse Source

net: WIZnet drivers: enable interrupts after napi_complete()

The interrupt is enabled before napi_complete(). A network timeout
occurs if the interrupt handler is called before napi_complete().

Fix the bug by enabling the interrupt after napi_complete().

Signed-off-by: Yongbae Park <yongbae2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Yongbae Park 10 years ago
parent
commit
5a3dba7a5f
2 changed files with 2 additions and 2 deletions
  1. 1 1
      drivers/net/ethernet/wiznet/w5100.c
  2. 1 1
      drivers/net/ethernet/wiznet/w5300.c

+ 1 - 1
drivers/net/ethernet/wiznet/w5100.c

@@ -498,9 +498,9 @@ static int w5100_napi_poll(struct napi_struct *napi, int budget)
 	}
 
 	if (rx_count < budget) {
+		napi_complete(napi);
 		w5100_write(priv, W5100_IMR, IR_S0);
 		mmiowb();
-		napi_complete(napi);
 	}
 
 	return rx_count;

+ 1 - 1
drivers/net/ethernet/wiznet/w5300.c

@@ -418,9 +418,9 @@ static int w5300_napi_poll(struct napi_struct *napi, int budget)
 	}
 
 	if (rx_count < budget) {
+		napi_complete(napi);
 		w5300_write(priv, W5300_IMR, IR_S0);
 		mmiowb();
-		napi_complete(napi);
 	}
 
 	return rx_count;