linux/drivers/net/ethernet/cisco/enic
Tony Camuso 8e091340cf enic: fix lockdep around devcmd_lock
We were experiencing occasional "BUG: scheduling while atomic" splats
in our testing. Enabling DEBUG_SPINLOCK and DEBUG_LOCKDEP in the kernel
exposed a lockdep in the enic driver.

enic 0000:0b:00.0 eth2: Link UP

======================================================
[ INFO: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected ]
3.12.0-rc1.x86_64-dbg+ #2 Tainted: GF       W
------------------------------------------------------
NetworkManager/4209 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire:
(&(&enic->devcmd_lock)->rlock){+.+...}, at: [<ffffffffa026b7e4>] enic_dev_packet_filter+0x44/0x90 [enic]

The fix was to replace spin_lock with spin_lock_bh for the enic
devcmd_lock, so that soft irqs would be disabled while the lock
is held.

Signed-off-by: Sujith Sankar <ssujith@cisco.com>
Signed-off-by: Tony Camuso <tcamuso@redhat.com>
Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-06-23 14:32:19 -07:00
..
cq_desc.h
cq_enet_desc.h enic: Fix endianness bug. 2012-02-24 17:53:03 -05:00
enic_api.c enic: fix lockdep around devcmd_lock 2014-06-23 14:32:19 -07:00
enic_api.h drivers/net: enic: Add an interface for USNIC to interact with firmware 2013-08-20 13:41:01 -07:00
enic_clsf.c enic: Add Accelerated RFS support 2014-06-23 14:32:19 -07:00
enic_clsf.h enic: Add Accelerated RFS support 2014-06-23 14:32:19 -07:00
enic_dev.c enic: fix lockdep around devcmd_lock 2014-06-23 14:32:19 -07:00
enic_dev.h enic: fix lockdep around devcmd_lock 2014-06-23 14:32:19 -07:00
enic_ethtool.c net: use SPEED_UNKNOWN and DUPLEX_UNKNOWN when appropriate 2014-06-06 16:24:07 -07:00
enic_main.c enic: fix lockdep around devcmd_lock 2014-06-23 14:32:19 -07:00
enic_pp.c net: enic: slight optimization of addr compare 2013-12-31 16:48:31 -05:00
enic_pp.h enic: Add support for port profile association on a enic SRIOV VF 2011-09-27 01:10:24 -04:00
enic_res.c enic: Add Accelerated RFS support 2014-06-23 14:32:19 -07:00
enic_res.h drivers/net: enic: Adding support for Cisco Low Latency NIC 2013-08-20 13:41:01 -07:00
enic.h enic: Add Accelerated RFS support 2014-06-23 14:32:19 -07:00
Kconfig net: Remove bogus dependencies on INET 2012-11-19 19:13:59 -05:00
Makefile enic: devcmd for adding IP 5 tuple hardware filters 2014-06-23 14:32:19 -07:00
rq_enet_desc.h
vnic_cq.c
vnic_cq.h enic: Add support for adaptive interrupt coalescing 2014-05-21 17:04:13 -04:00
vnic_dev.c enic: devcmd for adding IP 5 tuple hardware filters 2014-06-23 14:32:19 -07:00
vnic_dev.h enic: devcmd for adding IP 5 tuple hardware filters 2014-06-23 14:32:19 -07:00
vnic_devcmd.h enic: devcmd for adding IP 5 tuple hardware filters 2014-06-23 14:32:19 -07:00
vnic_enet.h enic: Add Accelerated RFS support 2014-06-23 14:32:19 -07:00
vnic_intr.c
vnic_intr.h
vnic_nic.h
vnic_resource.h
vnic_rq.c drivers/net: enic: Adding support for Cisco Low Latency NIC 2013-08-20 13:41:01 -07:00
vnic_rq.h drivers/net: enic: Adding support for Cisco Low Latency NIC 2013-08-20 13:41:01 -07:00
vnic_rss.h
vnic_stats.h
vnic_vic.c
vnic_vic.h
vnic_wq.c drivers/net: enic: Adding support for Cisco Low Latency NIC 2013-08-20 13:41:01 -07:00
vnic_wq.h drivers/net: enic: Adding support for Cisco Low Latency NIC 2013-08-20 13:41:01 -07:00
wq_enet_desc.h