提交 6dcfca78 编写于 作者: S Stefan Bader 提交者: Linus Torvalds

[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: NStefan Bader <shbader@de.ibm.com>
Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 329b785b
...@@ -635,13 +635,13 @@ __chp_add(struct subchannel_id schid, void *data) ...@@ -635,13 +635,13 @@ __chp_add(struct subchannel_id schid, void *data)
if (sch->schib.pmcw.chpid[i] == chp->id) { if (sch->schib.pmcw.chpid[i] == chp->id) {
if (stsch(sch->schid, &sch->schib) != 0) { if (stsch(sch->schid, &sch->schib) != 0) {
/* Endgame. */ /* Endgame. */
spin_unlock(&sch->lock); spin_unlock_irq(&sch->lock);
return -ENXIO; return -ENXIO;
} }
break; break;
} }
if (i==8) { if (i==8) {
spin_unlock(&sch->lock); spin_unlock_irq(&sch->lock);
return 0; return 0;
} }
sch->lpm = ((sch->schib.pmcw.pim & sch->lpm = ((sch->schib.pmcw.pim &
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册