Ver Fonte

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>
Hoang-Nam Nguyen há 18 anos atrás
pai
commit
cea9ea67e9
1 ficheiros alterados com 2 adições e 1 exclusões
  1. 2 1
      drivers/infiniband/hw/ehca/ehca_irq.c

+ 2 - 1
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;
 					}