⬢ DragonFlyBSD Kernel Audit
DF-4087 / fix.diff
← back to finding ↓ download raw
--- 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;
 }