[PATCH] s390: multiple subchannel sets support
Add support for multiple subchannel sets. Works with arbitrary devices in subchannel set 1 and is transparent to device drivers. Although currently only two subchannel sets are available, this will work with the architectured maximum number of subchannel sets as well. Signed-off-by: Cornelia Huck <cohuck@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>
This commit is contained in:

committed by
Linus Torvalds

parent
678a395b35
commit
fb6958a594
@@ -256,16 +256,17 @@ ccw_device_check_sense_id(struct ccw_device *cdev)
|
||||
* sense id information. So, for intervention required,
|
||||
* we use the "whack it until it talks" strategy...
|
||||
*/
|
||||
CIO_MSG_EVENT(2, "SenseID : device %04x on Subchannel %04x "
|
||||
"reports cmd reject\n",
|
||||
cdev->private->devno, sch->schid.sch_no);
|
||||
CIO_MSG_EVENT(2, "SenseID : device %04x on Subchannel "
|
||||
"0.%x.%04x reports cmd reject\n",
|
||||
cdev->private->devno, sch->schid.ssid,
|
||||
sch->schid.sch_no);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
if (irb->esw.esw0.erw.cons) {
|
||||
CIO_MSG_EVENT(2, "SenseID : UC on dev %04x, "
|
||||
CIO_MSG_EVENT(2, "SenseID : UC on dev 0.%x.%04x, "
|
||||
"lpum %02X, cnt %02d, sns :"
|
||||
" %02X%02X%02X%02X %02X%02X%02X%02X ...\n",
|
||||
cdev->private->devno,
|
||||
cdev->private->ssid, cdev->private->devno,
|
||||
irb->esw.esw0.sublog.lpum,
|
||||
irb->esw.esw0.erw.scnt,
|
||||
irb->ecw[0], irb->ecw[1],
|
||||
@@ -277,16 +278,17 @@ ccw_device_check_sense_id(struct ccw_device *cdev)
|
||||
if (irb->scsw.cc == 3) {
|
||||
if ((sch->orb.lpm &
|
||||
sch->schib.pmcw.pim & sch->schib.pmcw.pam) != 0)
|
||||
CIO_MSG_EVENT(2, "SenseID : path %02X for device %04x on"
|
||||
" subchannel %04x is 'not operational'\n",
|
||||
sch->orb.lpm, cdev->private->devno,
|
||||
CIO_MSG_EVENT(2, "SenseID : path %02X for device %04x "
|
||||
"on subchannel 0.%x.%04x is "
|
||||
"'not operational'\n", sch->orb.lpm,
|
||||
cdev->private->devno, sch->schid.ssid,
|
||||
sch->schid.sch_no);
|
||||
return -EACCES;
|
||||
}
|
||||
/* Hmm, whatever happened, try again. */
|
||||
CIO_MSG_EVENT(2, "SenseID : start_IO() for device %04x on "
|
||||
"subchannel %04x returns status %02X%02X\n",
|
||||
cdev->private->devno, sch->schid.sch_no,
|
||||
"subchannel 0.%x.%04x returns status %02X%02X\n",
|
||||
cdev->private->devno, sch->schid.ssid, sch->schid.sch_no,
|
||||
irb->scsw.dstat, irb->scsw.cstat);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
Reference in New Issue
Block a user