diff options
author | Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 2006-09-20 09:59:54 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-09-20 09:59:54 -0400 |
commit | dd9963f9dd0985e16e878fd3632ecadfc54d3fbb (patch) | |
tree | 323295ffcc116aceac4c0bcb20bb641d54253737 /drivers/s390/cio/chsc.c | |
parent | dcd707b4bdc10b4fa20efa116dbaeded21513115 (diff) |
[S390] cio: subchannels in no-path state.
Subchannel may incorrectly remain in state no-path after channel paths
have reappeared. Currently the scan for subchannels which are using a
channel path ends at the first occurrence if a full link address was
provided by the channel subsystem. The scan needs to continue over
all subchannels.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/chsc.c')
-rw-r--r-- | drivers/s390/cio/chsc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index c28444af0919..9f9134b67e40 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -378,6 +378,7 @@ __s390_process_res_acc(struct subchannel_id schid, void *data) | |||
378 | 378 | ||
379 | if (chp_mask == 0) { | 379 | if (chp_mask == 0) { |
380 | spin_unlock_irq(&sch->lock); | 380 | spin_unlock_irq(&sch->lock); |
381 | put_device(&sch->dev); | ||
381 | return 0; | 382 | return 0; |
382 | } | 383 | } |
383 | old_lpm = sch->lpm; | 384 | old_lpm = sch->lpm; |
@@ -392,7 +393,7 @@ __s390_process_res_acc(struct subchannel_id schid, void *data) | |||
392 | 393 | ||
393 | spin_unlock_irq(&sch->lock); | 394 | spin_unlock_irq(&sch->lock); |
394 | put_device(&sch->dev); | 395 | put_device(&sch->dev); |
395 | return (res_data->fla_mask == 0xffff) ? -ENODEV : 0; | 396 | return 0; |
396 | } | 397 | } |
397 | 398 | ||
398 | 399 | ||