OSDN Git Service

net: calxedaxgmac: fix race between xgmac_tx_complete and xgmac_tx_err
authorRob Herring <rob.herring@calxeda.com>
Fri, 30 Aug 2013 21:49:21 +0000 (16:49 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Sep 2013 02:21:15 +0000 (22:21 -0400)
commit8746f671ef04114ab25f5a35ec6219efbdf3703e
tree1abd7ba59fd2cb956e99afee1f199e4fac92ecac
parentef07387faf33a95e011993200902d490b605407d
net: calxedaxgmac: fix race between xgmac_tx_complete and xgmac_tx_err

It is possible for the xgmac_tx_complete to run concurrently with
xgmac_tx_err since there are no locks. Fix this by moving the tx
error handling to a workqueue so we can disable napi while we reset
the transmitter.

Reported-by: Andreas Herrmann <andreas.herrmann@calxeda.com>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/calxeda/xgmac.c