IB/ehca: Rework destroy_eq()
authorAlexander Schmidt <alexs@linux.vnet.ibm.com>
Wed, 9 Dec 2009 18:11:04 +0000 (10:11 -0800)
committerRoland Dreier <rolandd@cisco.com>
Wed, 9 Dec 2009 18:11:04 +0000 (10:11 -0800)
commit9420269428b3dc80c98e52beac60a3976fbef7d2
treeb2b43bbaa396613434143efe79b00b15eed690f1
parent91d3f9bacdb4950d2f79fe2ba296aa249f60d06c
IB/ehca: Rework destroy_eq()

The ibmebus_free_irq() function, which might sleep, was called with
interrupts disabled.  To fix this, make sure that no interrupts are
running by killing the interrupt tasklet.  Also lock the
shca_list_lock to protect against the poll_eqs_timer running
concurrently.

Signed-off-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ehca/ehca_classes.h
drivers/infiniband/hw/ehca/ehca_eq.c
drivers/infiniband/hw/ehca/ehca_main.c