DF-4087 / fix.diff
--- a/sys/dev/raid/mps/mps_mapping.c +++ b/sys/dev/raid/mps/mps_mapping.c @@ -511,15 +511,16 @@ dpm_entry = (Mpi2DriverMap0Entry_t *)((u8 *)sc->dpm_pg0 + sizeof(MPI2_CONFIG_EXTENDED_PAGE_HEADER)); - PhysicalIdentifier = dpm_entry->PhysicalIdentifier.High; - PhysicalIdentifier = (PhysicalIdentifier << 32) | - dpm_entry->PhysicalIdentifier.Low; for (entry_num = 0; entry_num < sc->max_dpm_entries; entry_num++, - dpm_entry++) + dpm_entry++) { + PhysicalIdentifier = dpm_entry->PhysicalIdentifier.High; + PhysicalIdentifier = (PhysicalIdentifier << 32) | + dpm_entry->PhysicalIdentifier.Low; if ((id == PhysicalIdentifier) && (!phy_bits || !dpm_entry->PhysicalBitsMapping || (phy_bits & dpm_entry->PhysicalBitsMapping))) return entry_num; + } return MPS_DPM_BAD_IDX; } |