diff options
| author | Stefan Bader <shbader@de.ibm.com> | 2006-04-27 21:40:04 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-28 11:33:47 -0400 |
| commit | 6dcfca78d4c036c9d012f913e2a622aae218827f (patch) | |
| tree | 945d38095f9302d5d3139be96a5466f2b6e12383 | |
| parent | 329b785bcee5d001f97a33bdb80de014bb5020b0 (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>
| -rw-r--r-- | drivers/s390/cio/chsc.c | 4 |
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 & |
