VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / s390 / cio / device_id.c
index aae28c3..3236595 100644 (file)
@@ -303,15 +303,14 @@ 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;
-       /*
-        * Unsolicited interrupts may pertain to an earlier status pending or
-        * busy condition on the subchannel. Retry sense id.
-        */
+       /* Retry sense id for cc=1. */
        if (irb->scsw.stctl ==
            (SCSW_STCTL_STATUS_PEND | SCSW_STCTL_ALERT_STATUS)) {
-               ret = __ccw_device_sense_id_start(cdev);
-               if (ret && ret != -EBUSY)
-                       ccw_device_sense_id_done(cdev, ret);
+               if (irb->scsw.cc == 1) {
+                       ret = __ccw_device_sense_id_start(cdev);
+                       if (ret && ret != -EBUSY)
+                               ccw_device_sense_id_done(cdev, ret);
+               }
                return;
        }
        if (ccw_device_accumulate_and_sense(cdev, irb) != 0)