diff options
author | Hoang-Nam Nguyen <hnguyen@linux.vnet.ibm.com> | 2007-01-19 22:50:10 +0100 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-01-22 17:03:55 -0800 |
commit | cea9ea67e9927da18af89b49bd949a8d65ba1b15 (patch) | |
tree | 26f84c14b22d81b41fb1d5add51115984b47e558 /drivers/infiniband/hw | |
parent | ce29d72cc737df3573854a4719f00385adf1c9a6 (diff) | |
download | linux-cea9ea67e9927da18af89b49bd949a8d65ba1b15.tar.bz2 |
IB/ehca: Fix mismatched spin_unlock in irq handler
The lock is taken with _irqsave and hence must be released with
_irqrestore on all paths.
Signed-off-by Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_irq.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c index e7209afb4250..c069be8cbcb2 100644 --- a/drivers/infiniband/hw/ehca/ehca_irq.c +++ b/drivers/infiniband/hw/ehca/ehca_irq.c @@ -440,7 +440,8 @@ void ehca_tasklet_eq(unsigned long data) cq = idr_find(&ehca_cq_idr, token); if (cq == NULL) { - spin_unlock(&ehca_cq_idr_lock); + spin_unlock_irqrestore(&ehca_cq_idr_lock, + flags); break; } |