linux/drivers/infiniband/hw
Ram Vepa 4356d0b64b IB/qib: Fix potential deadlock with link down interrupt
There is a possibility of a deadlock due to the way locks are
acquired and released in qib_set_uevent_bits(). The function
qib_set_uevent_bits() is called in process context and it uses
spin_lock() and spin_unlock().  This same lock is acquired/released
in interrupt context which can lead to a deadlock when running on
the same cpu.

The fix is to replace spin_lock() and spin_unlock() with
spin_lock_irqsave() and spin_unlock_irqrestore() respectively in
qib_set_uevent_bits().

Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2011-07-18 12:09:23 -07:00
..
amso1100 Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
cxgb3 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-05-26 12:13:57 -07:00
cxgb4 RDMA/cxgb4: Couple of abort fixes 2011-06-17 11:54:56 -07:00
ehca RDMA: Use vzalloc() to replace vmalloc()+memset(0) 2011-01-12 11:11:58 -08:00
ipath IB/ipath: Use pci_dev->revision, again 2011-05-09 22:07:31 -07:00
mlx4 mlx4: generalization of multicast steering. 2011-03-23 12:24:21 -07:00
mthca IB: Increase DMA max_segment_size on Mellanox hardware 2011-03-22 09:39:18 -07:00
nes Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-05-26 12:13:57 -07:00
qib IB/qib: Fix potential deadlock with link down interrupt 2011-07-18 12:09:23 -07:00