[S390] cio: Introduce subchannel->private.
Introduce a private pointer in struct subchannel to store per-subchannel type data (cannot use dev->priv since this is already used for something else). Create a new header io_sch.h for I/O subchannel specific structures and instructions. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
bc698bcf88
commit
cd6b4f27b9
@@ -20,6 +20,7 @@
|
||||
#include "css.h"
|
||||
#include "device.h"
|
||||
#include "ioasm.h"
|
||||
#include "io_sch.h"
|
||||
|
||||
/*
|
||||
* Check for any kind of channel or interface control check but don't
|
||||
@@ -310,6 +311,7 @@ int
|
||||
ccw_device_do_sense(struct ccw_device *cdev, struct irb *irb)
|
||||
{
|
||||
struct subchannel *sch;
|
||||
struct ccw1 *sense_ccw;
|
||||
|
||||
sch = to_subchannel(cdev->dev.parent);
|
||||
|
||||
@@ -326,15 +328,16 @@ ccw_device_do_sense(struct ccw_device *cdev, struct irb *irb)
|
||||
/*
|
||||
* We have ending status but no sense information. Do a basic sense.
|
||||
*/
|
||||
sch->sense_ccw.cmd_code = CCW_CMD_BASIC_SENSE;
|
||||
sch->sense_ccw.cda = (__u32) __pa(cdev->private->irb.ecw);
|
||||
sch->sense_ccw.count = SENSE_MAX_COUNT;
|
||||
sch->sense_ccw.flags = CCW_FLAG_SLI;
|
||||
sense_ccw = &to_io_private(sch)->sense_ccw;
|
||||
sense_ccw->cmd_code = CCW_CMD_BASIC_SENSE;
|
||||
sense_ccw->cda = (__u32) __pa(cdev->private->irb.ecw);
|
||||
sense_ccw->count = SENSE_MAX_COUNT;
|
||||
sense_ccw->flags = CCW_FLAG_SLI;
|
||||
|
||||
/* Reset internal retry indication. */
|
||||
cdev->private->flags.intretry = 0;
|
||||
|
||||
return cio_start (sch, &sch->sense_ccw, 0xff);
|
||||
return cio_start(sch, sense_ccw, 0xff);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user