vserver 1.9.3
[linux-2.6.git] / drivers / s390 / cio / device_id.c
index 3236595..f6cb897 100644 (file)
@@ -303,10 +303,10 @@ ccw_device_sense_id_irq(struct ccw_device *cdev, enum dev_event dev_event)
 
        sch = to_subchannel(cdev->dev.parent);
        irb = (struct irb *) __LC_IRB;
-       /* Retry sense id for cc=1. */
+       /* Retry sense id, if needed. */
        if (irb->scsw.stctl ==
            (SCSW_STCTL_STATUS_PEND | SCSW_STCTL_ALERT_STATUS)) {
-               if (irb->scsw.cc == 1) {
+               if ((irb->scsw.cc == 1) || !irb->scsw.actl) {
                        ret = __ccw_device_sense_id_start(cdev);
                        if (ret && ret != -EBUSY)
                                ccw_device_sense_id_done(cdev, ret);