9 #include <linux/module.h>
31 if (!scsw_is_valid_cstat(&irb->
scsw) ||
37 " ... device %04x on subchannel 0.%x.%04x, dev_stat "
38 ": %02X sch_stat : %02X\n",
41 scsw_dstat(&irb->
scsw), scsw_cstat(&irb->
scsw));
44 CIO_HEX_EVENT(0, irb,
sizeof(
struct irb));
51 ccw_device_path_notoper(
struct ccw_device *cdev)
60 "not operational \n", __func__,
62 sch->
schib.pmcw.pnom);
66 cdev->
private->flags.doverify = 1;
73 ccw_device_accumulate_ecw(
struct ccw_device *cdev,
struct irb *irb)
80 cdev->
private->irb.scsw.cmd.ectl = 0;
85 if (!cdev->
private->irb.scsw.cmd.ectl)
95 ccw_device_accumulate_esw_valid(
struct irb *irb)
111 ccw_device_accumulate_esw(
struct ccw_device *cdev,
struct irb *irb)
113 struct irb *cdev_irb;
116 if (!ccw_device_accumulate_esw_valid(irb))
119 cdev_irb = &cdev->
private->irb;
126 cdev_sublog = &cdev_irb->
esw.
esw0.sublog;
127 sublog = &irb->
esw.
esw0.sublog;
129 cdev_sublog->
esf = sublog->
esf;
140 cdev_sublog->
fvf = sublog->
fvf;
159 if (cdev_irb->
esw.
esw0.erw.fsavf) {
180 cdev->
private->flags.doverify = 1;
193 struct irb *cdev_irb;
204 ccw_device_msg_control_check(cdev, irb);
207 if (scsw_is_valid_pno(&irb->
scsw) && scsw_pno(&irb->
scsw))
208 ccw_device_path_notoper(cdev);
210 if (scsw_is_tm(&irb->
scsw)) {
217 if (!scsw_is_solicited(&irb->
scsw))
220 cdev_irb = &cdev->
private->irb;
251 ccw_device_accumulate_ecw(cdev, irb);
286 ccw_device_accumulate_esw(cdev, irb);
301 !(cdev_irb->
esw.
esw0.erw.cons))
302 cdev->
private->flags.dosense = 1;
357 ccw_device_msg_control_check(cdev, irb);
360 if (scsw_is_valid_pno(&irb->
scsw) && scsw_pno(&irb->
scsw))
361 ccw_device_path_notoper(cdev);
365 cdev->
private->irb.esw.esw0.erw.cons = 1;
366 cdev->
private->flags.dosense = 0;
369 if (ccw_device_accumulate_esw_valid(irb) &&
371 cdev->
private->flags.doverify = 1;
385 if (cdev->
private->flags.dosense &&
387 cdev->
private->irb.esw.esw0.erw.cons = 1;
388 cdev->
private->flags.dosense = 0;
391 if (cdev->
private->flags.dosense) {