Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[pandora-kernel.git] / drivers / s390 / cio / device_status.c
index 12a24d4..caf148d 100644 (file)
@@ -3,13 +3,12 @@
  *
  *    Copyright (C) 2002 IBM Deutschland Entwicklung GmbH,
  *                      IBM Corporation
- *    Author(s): Cornelia Huck(cohuck@de.ibm.com)
+ *    Author(s): Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  * Status accumulation and basic sense functions.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
@@ -36,15 +35,16 @@ ccw_device_msg_control_check(struct ccw_device *cdev, struct irb *irb)
                
        CIO_MSG_EVENT(0, "Channel-Check or Interface-Control-Check "
                      "received"
-                     " ... device %04X on subchannel %04X, dev_stat "
+                     " ... device %04x on subchannel 0.%x.%04x, dev_stat "
                      ": %02X sch_stat : %02X\n",
-                     cdev->private->devno, cdev->private->irq,
+                     cdev->private->devno, cdev->private->ssid,
+                     cdev->private->sch_no,
                      irb->scsw.dstat, irb->scsw.cstat);
 
        if (irb->scsw.cc != 3) {
                char dbf_text[15];
 
-               sprintf(dbf_text, "chk%x", cdev->private->irq);
+               sprintf(dbf_text, "chk%x", cdev->private->sch_no);
                CIO_TRACE_EVENT(0, dbf_text);
                CIO_HEX_EVENT(0, irb, sizeof (struct irb));
        }
@@ -59,15 +59,15 @@ ccw_device_path_notoper(struct ccw_device *cdev)
        struct subchannel *sch;
 
        sch = to_subchannel(cdev->dev.parent);
-       stsch (sch->irq, &sch->schib);
+       stsch (sch->schid, &sch->schib);
 
-       CIO_MSG_EVENT(0, "%s(%04x) - path(s) %02x are "
-                     "not operational \n", __FUNCTION__, sch->irq,
+       CIO_MSG_EVENT(0, "%s(0.%x.%04x) - path(s) %02x are "
+                     "not operational \n", __FUNCTION__,
+                     sch->schid.ssid, sch->schid.sch_no,
                      sch->schib.pmcw.pnom);
 
        sch->lpm &= ~sch->schib.pmcw.pnom;
-       if (cdev->private->options.pgroup)
-               cdev->private->flags.doverify = 1;
+       cdev->private->flags.doverify = 1;
 }
 
 /*
@@ -179,7 +179,7 @@ ccw_device_accumulate_esw(struct ccw_device *cdev, struct irb *irb)
        cdev_irb->esw.esw0.erw.auth = irb->esw.esw0.erw.auth;
        /* Copy path verification required flag. */
        cdev_irb->esw.esw0.erw.pvrf = irb->esw.esw0.erw.pvrf;
-       if (irb->esw.esw0.erw.pvrf && cdev->private->options.pgroup)
+       if (irb->esw.esw0.erw.pvrf)
                cdev->private->flags.doverify = 1;
        /* Copy concurrent sense bit. */
        cdev_irb->esw.esw0.erw.cons = irb->esw.esw0.erw.cons;
@@ -315,7 +315,6 @@ ccw_device_do_sense(struct ccw_device *cdev, struct irb *irb)
        /*
         * We have ending status but no sense information. Do a basic sense.
         */
-       sch = to_subchannel(cdev->dev.parent);
        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;
@@ -354,7 +353,7 @@ ccw_device_accumulate_basic_sense(struct ccw_device *cdev, struct irb *irb)
        }
        /* Check if path verification is required. */
        if (ccw_device_accumulate_esw_valid(irb) &&
-           irb->esw.esw0.erw.pvrf && cdev->private->options.pgroup) 
+           irb->esw.esw0.erw.pvrf)
                cdev->private->flags.doverify = 1;
 }