aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorStefan Bader <shbader@de.ibm.com>2006-04-27 21:40:04 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-28 11:33:47 -0400
commit6dcfca78d4c036c9d012f913e2a622aae218827f (patch)
tree945d38095f9302d5d3139be96a5466f2b6e12383 /drivers/s390
parent329b785bcee5d001f97a33bdb80de014bb5020b0 (diff)
[PATCH] s390: enable interrupts on error path
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>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/cio/chsc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c
index daedb00a4346..72187e54dcac 100644
--- a/drivers/s390/cio/chsc.c
+++ b/drivers/s390/cio/chsc.c
@@ -635,13 +635,13 @@ __chp_add(struct subchannel_id schid, void *data)
635 if (sch->schib.pmcw.chpid[i] == chp->id) { 635 if (sch->schib.pmcw.chpid[i] == chp->id) {
636 if (stsch(sch->schid, &sch->schib) != 0) { 636 if (stsch(sch->schid, &sch->schib) != 0) {
637 /* Endgame. */ 637 /* Endgame. */
638 spin_unlock(&sch->lock); 638 spin_unlock_irq(&sch->lock);
639 return -ENXIO; 639 return -ENXIO;
640 } 640 }
641 break; 641 break;
642 } 642 }
643 if (i==8) { 643 if (i==8) {
644 spin_unlock(&sch->lock); 644 spin_unlock_irq(&sch->lock);
645 return 0; 645 return 0;
646 } 646 }
647 sch->lpm = ((sch->schib.pmcw.pim & 647 sch->lpm = ((sch->schib.pmcw.pim &