summaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/chsc.c
diff options
context:
space:
mode:
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>2006-09-20 15:59:54 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2006-09-20 15:59:54 +0200
commitdd9963f9dd0985e16e878fd3632ecadfc54d3fbb (patch)
tree323295ffcc116aceac4c0bcb20bb641d54253737 /drivers/s390/cio/chsc.c
parentdcd707b4bdc10b4fa20efa116dbaeded21513115 (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.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c
index c28444af091..9f9134b67e4 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)
if (chp_mask == 0) {
spin_unlock_irq(&sch->lock);
+ put_device(&sch->dev);
return 0;
}
old_lpm = sch->lpm;
@@ -392,7 +393,7 @@ __s390_process_res_acc(struct subchannel_id schid, void *data)
spin_unlock_irq(&sch->lock);
put_device(&sch->dev);
- return (res_data->fla_mask == 0xffff) ? -ENODEV : 0;
+ return 0;
}