summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fec.h
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-31 10:46:21 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-10-17 14:35:21 +0100
commitdbd69f5aeb1ae857c76daf1f0abeaa39015a6886 (patch)
treecd3b4fd2b3d3fb153dff3de648ef9d7315a1defc /drivers/net/ethernet/freescale/fec.h
parentada950bc676bbcd7140f1422e700e183b376f2ab (diff)
net: fec: add locking for MDIO bus access
Both fec_restart() and fec_stop() both perform a reset of the FEC. This reset can result in an in-process MDIO transfer being terminated, which can lead to the MDIO read/write functions timing out. Add some locking to prevent this occuring. We can't use a spinlock for this as the MDIO accessor functions use wait_for_completion_timeout(), which sleeps. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/net/ethernet/freescale/fec.h')
-rw-r--r--drivers/net/ethernet/freescale/fec.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h
index 19210acabcaa..1757aa7eb473 100644
--- a/drivers/net/ethernet/freescale/fec.h
+++ b/drivers/net/ethernet/freescale/fec.h
@@ -14,6 +14,7 @@
/****************************************************************************/
#include <linux/clocksource.h>
+#include <linux/mutex.h>
#include <linux/net_tstamp.h>
#include <linux/ptp_clock_kernel.h>
@@ -310,6 +311,8 @@ struct fec_enet_private {
char *tso_hdrs;
dma_addr_t tso_hdrs_dma;
+ struct mutex mutex;
+
struct platform_device *pdev;
int dev_id;