IB/mlx4: Don't call dma_free_coherent() with irqs disabled
authorVladimir Sokolovsky <vlad@dev.mellanox.co.il>
Tue, 11 Jan 2011 01:42:06 +0000 (17:42 -0800)
committerRoland Dreier <rolandd@cisco.com>
Tue, 11 Jan 2011 01:42:06 +0000 (17:42 -0800)
commit3afa9f19e5bd16abed998b7bf1b178206403286f
tree2bd80f9204eaa867bbd7d4aee3ca51c11f3c5f75
parentf5a49539a64ae5e3833fddec54a3c2524c7fe333
IB/mlx4: Don't call dma_free_coherent() with irqs disabled

mlx4_ib_free_cq_buf() should not be called under spin_lock_irq() since
it calls dma_free_coherent(), which needs irqs enabled.  Fix this by
deferring the free to outside the locked region.

This was found due to the

WARN_ON(irqs_disabled());

in swiotlb_free_coherent().

Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mlx4/cq.c