You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[S390] cio: introduce cio_update_schib
There is the chance that we get condition code 0 for a stsch but the resulting schib is not vaild. In the current code there are 2 cases: * we do a check for validity of the schib after stsch, but at this time we have already stored the invaild schib in the subchannel structure. This may lead to problems. * we don't do a check for validity, which is not that good either. The patch addresses both issues by introducing the stsch wrapper cio_update_schib which performs stsch on a local schib. This schib is only written back to the subchannel if it's valid. side note: For some functions (chp_events) the return codes are different now (-ENXIO vs -ENODEV) but this shouldn't do harm since the caller doesn't check for _specific_ errors. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
d6a30761d8
commit
cdb912a40d
@@ -61,7 +61,7 @@ static void chsc_subchannel_irq(struct subchannel *sch)
|
||||
}
|
||||
private->request = NULL;
|
||||
memcpy(&request->irb, irb, sizeof(*irb));
|
||||
stsch(sch->schid, &sch->schib);
|
||||
cio_update_schib(sch);
|
||||
complete(&request->completion);
|
||||
put_device(&sch->dev);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user