[PATCH] s390: enable interrupts on error path
authorStefan Bader <shbader@de.ibm.com>
Fri, 28 Apr 2006 01:40:04 +0000 (18:40 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 28 Apr 2006 15:33:47 +0000 (08:33 -0700)
Interrupts can stay disabled if an error occurred in _chp_add().  Use
spin_unlock_irq on the error paths to reenable interrupts.

Signed-off-by: Stefan Bader <shbader@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/s390/cio/chsc.c

index daedb00..72187e5 100644 (file)
@@ -635,13 +635,13 @@ __chp_add(struct subchannel_id schid, void *data)
                if (sch->schib.pmcw.chpid[i] == chp->id) {
                        if (stsch(sch->schid, &sch->schib) != 0) {
                                /* Endgame. */
-                               spin_unlock(&sch->lock);
+                               spin_unlock_irq(&sch->lock);
                                return -ENXIO;
                        }
                        break;
                }
        if (i==8) {
-               spin_unlock(&sch->lock);
+               spin_unlock_irq(&sch->lock);
                return 0;
        }
        sch->lpm = ((sch->schib.pmcw.pim &