aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Bader <shbader@de.ibm.com>2006-04-27 18:40:04 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-28 08:33:47 -0700
commit6dcfca78d4c036c9d012f913e2a622aae218827f (patch)
tree945d38095f9302d5d3139be96a5466f2b6e12383
parent[PATCH] s390: fix I/O termination race in cio (diff)
downloadlinux-dev-6dcfca78d4c036c9d012f913e2a622aae218827f.tar.xz
linux-dev-6dcfca78d4c036c9d012f913e2a622aae218827f.zip
[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>
-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)
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 &