linux/drivers/net/ethernet/freescale
Frank Li 85bd1798b2 net: fec: fix spin_lock dead lock
=========================================================
[ INFO: possible irq lock inversion dependency detected ]
3.8.0-rc5+ #82 Not tainted
---------------------------------------------------------
swapper/0/0 just changed the state of lock:
 (&(&fep->hw_lock)->rlock){..-...}, at: [<8034e2f8>] fec_enet_start_xmit+0x48/0x                      2cc
but this lock took another, SOFTIRQ-unsafe lock in the past:
(prepare_lock){+.+.+.}

and interrupts could create inverse lock ordering between them.
other info that might help us debug this:
Possible interrupt unsafe locking scenario:

CPU0				CPU1
----				----
lock(prepare_lock);
				local_irq_disable()
				lock(&(&fep->hw_lock)->rlock);
				lock(prepare_lock);
<Interrupt>
lock(&(&fep->hw_lock)->rlock);

*** DEADLOCK ***

Signed-off-by: Frank Li <Frank.Li@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-02-07 23:36:41 -05:00
..
fs_enet ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
fec_mpc52xx_phy.c
fec_mpc52xx.c net/freescale: remove __dev* attributes 2012-12-03 11:16:54 -08:00
fec_mpc52xx.h drivers/net: fix up stale paths from driver reorg 2012-01-30 12:54:40 -05:00
fec_ptp.c net: fec: fix spin_lock dead lock 2013-02-07 23:36:41 -05:00
fec.c net: fec: correct fix method about miss init spinlock 2013-02-07 23:36:41 -05:00
fec.h net: fec: add napi support to improve proformance 2013-01-29 14:16:17 -05:00
fsl_pq_mdio.c net/fsl_pq_mdio: add support for the Fman 1G MDIO controller 2012-08-30 13:29:32 -04:00
gianfar_ethtool.c ethernet: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:33 -05:00
gianfar_ptp.c gianfar_ptp: use iomem, not ioports resource tree in probe 2012-10-24 23:18:59 -04:00
gianfar_sysfs.c drivers/net: fix up stale paths from driver reorg 2012-01-30 12:54:40 -05:00
gianfar.c gianfar: dont conditionally alloc Rx/Err irq structs 2013-02-04 21:08:01 -05:00
gianfar.h gianfar: Pack struct gfar_priv_grp into three cachelines 2013-01-29 15:22:02 -05:00
Kconfig NET: FEC: dynamtic check DMA desc buff type 2013-01-04 15:15:39 -08:00
Makefile NET: FEC: dynamtic check DMA desc buff type 2013-01-04 15:15:39 -08:00
ucc_geth_ethtool.c ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
ucc_geth.c net: fix typo in freescale/ucc_geth.c 2012-10-09 00:21:38 -04:00
ucc_geth.h net: remove skb recycling 2012-10-07 00:40:54 -04:00
xgmac_mdio.c net/freescale: remove __dev* attributes 2012-12-03 11:16:54 -08:00