/* read IDENTIFY page and configure devices */
        for (i = 0; i < ATA_MAX_DEVICES; i++) {
                dev = &ap->device[i];
-               dev->class = classes[i];
 
-               if (!tries[i]) {
-                       ata_down_xfermask_limit(ap, dev, 1);
-                       ata_dev_disable(ap, dev);
-               }
+               if (tries[i])
+                       dev->class = classes[i];
 
                if (!ata_dev_enabled(dev))
                        continue;
                        tries[dev->devno] = 0;
        }
 
+       if (!tries[dev->devno]) {
+               ata_down_xfermask_limit(ap, dev, 1);
+               ata_dev_disable(ap, dev);
+       }
+
        goto retry;
 }