_scsih_search_responding_raid_devices(struct MPT2SAS_ADAPTER *ioc)
 {
        Mpi2RaidVolPage1_t volume_pg1;
+       Mpi2RaidVolPage0_t volume_pg0;
        Mpi2RaidPhysDiskPage0_t pd_pg0;
        Mpi2ConfigReply_t mpi_reply;
        u16 ioc_status;
                if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
                        break;
                handle = le16_to_cpu(volume_pg1.DevHandle);
-               _scsih_mark_responding_raid_device(ioc,
-                   le64_to_cpu(volume_pg1.WWID), handle);
+
+               if (mpt2sas_config_get_raid_volume_pg0(ioc, &mpi_reply,
+                   &volume_pg0, MPI2_RAID_VOLUME_PGAD_FORM_HANDLE, handle,
+                    sizeof(Mpi2RaidVolPage0_t)))
+                       continue;
+
+               if (volume_pg0.VolumeState == MPI2_RAID_VOL_STATE_OPTIMAL ||
+                   volume_pg0.VolumeState == MPI2_RAID_VOL_STATE_ONLINE ||
+                   volume_pg0.VolumeState == MPI2_RAID_VOL_STATE_DEGRADED)
+                       _scsih_mark_responding_raid_device(ioc,
+                           le64_to_cpu(volume_pg1.WWID), handle);
        }
 
        /* refresh the pd_handles */