e3aa31c517
We have run into the following problem: if a task receives a signal while in the process of e.g. destroying a resource (which could be because the relevant file was closed) mthca could bail out from trying to take a command interface semaphore without performing the appropriate command to tell hardware that the resource is being destroyed. As a result we see messages like ib_mthca 0000:04:00.0: HW2SW_CQ failed (-4) In this case, hardware could access the resource after the memory has been freed, possibly causing memory corruption. A simple solution is to replace down_interruptible() by down() in command interface activation. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> [ It's also not safe to bail out on multicast table operations, since they may be invoked on the cleanup path too. So use down() for mcg_table.sem too. ] Signed-off-by: Roland Dreier <rolandd@cisco.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
mthca_allocator.c | ||
mthca_av.c | ||
mthca_catas.c | ||
mthca_cmd.c | ||
mthca_cmd.h | ||
mthca_config_reg.h | ||
mthca_cq.c | ||
mthca_dev.h | ||
mthca_doorbell.h | ||
mthca_eq.c | ||
mthca_mad.c | ||
mthca_main.c | ||
mthca_mcg.c | ||
mthca_memfree.c | ||
mthca_memfree.h | ||
mthca_mr.c | ||
mthca_pd.c | ||
mthca_profile.c | ||
mthca_profile.h | ||
mthca_provider.c | ||
mthca_provider.h | ||
mthca_qp.c | ||
mthca_reset.c | ||
mthca_srq.c | ||
mthca_uar.c | ||
mthca_user.h | ||
mthca_wqe.h |