diff --git a/drivers/storage/port/storport/misc.c b/drivers/storage/port/storport/misc.c index 1c9c73ae661..200682708e1 100644 --- a/drivers/storage/port/storport/misc.c +++ b/drivers/storage/port/storport/misc.c @@ -102,7 +102,6 @@ GetResourceListSize( PCM_RESOURCE_LIST ResourceList) { PCM_FULL_RESOURCE_DESCRIPTOR Descriptor; - INT i; ULONG Size; DPRINT1("GetResourceListSize(%p)\n", ResourceList); @@ -117,20 +116,12 @@ GetResourceListSize( DPRINT1("ResourceList->Count: %lu\n", ResourceList->Count); Descriptor = &ResourceList->List[0]; - for (i = 0; i < ResourceList->Count; i++) - { - /* Process resources in CM_FULL_RESOURCE_DESCRIPTOR block number ix. */ - DPRINT1("PartialResourceList->Count: %lu\n", Descriptor->PartialResourceList.Count); + DPRINT1("PartialResourceList->Count: %lu\n", Descriptor->PartialResourceList.Count); - /* Add the size of the current full descriptor */ - Size += sizeof(CM_FULL_RESOURCE_DESCRIPTOR) + - (Descriptor->PartialResourceList.Count - 1) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR); - - /* Advance to next CM_FULL_RESOURCE_DESCRIPTOR block in memory. */ - Descriptor = (PCM_FULL_RESOURCE_DESCRIPTOR)(Descriptor->PartialResourceList.PartialDescriptors + - Descriptor->PartialResourceList.Count); - } + /* Add the size of the partial descriptors */ + if (Descriptor->PartialResourceList.Count > 1) + Size += (Descriptor->PartialResourceList.Count - 1) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR); DPRINT1("Size: 0x%lx (%u)\n", Size, Size); return Size;