Commit 8961b194 authored by Lino Sanfilippo's avatar Lino Sanfilippo Committed by David S. Miller

pxa168: close race between napi and irq activation

In pxa168_eth_open() the irqs are enabled before napi. This opens a tiny time
window in which the irq handler is processed, disables irqs but then is not able
to schedule the not yet activated napi, leaving irqs disabled forever (since
irqs are reenabled in napi poll function).
Fix this race by activating napi before irqs are activated.
Signed-off-by: default avatarLino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 769e0de6
...@@ -1153,8 +1153,8 @@ static int pxa168_eth_open(struct net_device *dev) ...@@ -1153,8 +1153,8 @@ static int pxa168_eth_open(struct net_device *dev)
pep->rx_used_desc_q = 0; pep->rx_used_desc_q = 0;
pep->rx_curr_desc_q = 0; pep->rx_curr_desc_q = 0;
netif_carrier_off(dev); netif_carrier_off(dev);
eth_port_start(dev);
napi_enable(&pep->napi); napi_enable(&pep->napi);
eth_port_start(dev);
return 0; return 0;
out_free_rx_skb: out_free_rx_skb:
rxq_deinit(dev); rxq_deinit(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment