Author: fireball Date: Sat Jul 7 12:52:35 2007 New Revision: 27445
URL: http://svn.reactos.org/svn/reactos?rev=27445&view=rev Log: - Zero initialize a variable (I have no idea how PREfast missed this important flaw). - Fix PCI bus enumeration, so that finding SCSI controllers on PCI bus works now.
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.c
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/scsiport/sc... ============================================================================== --- trunk/reactos/drivers/storage/scsiport/scsiport.c (original) +++ trunk/reactos/drivers/storage/scsiport/scsiport.c Sat Jul 7 12:52:35 2007 @@ -849,6 +849,9 @@ /* Zero the internal configuration info structure */ RtlZeroMemory(&ConfigInfo, sizeof(CONFIGURATION_INFO));
+ /* Zero starting slot number */ + SlotNumber.u.AsULONG = 0; + /* Allocate space for access ranges */ if (HwInitializationData->NumberOfAccessRanges) { @@ -1025,7 +1028,7 @@ HwInitializationData, PortConfig, RegistryPath, - BusNumber, + ConfigInfo.BusNumber, &SlotNumber)) { /* Continue to the next bus, nothing here */ @@ -2087,10 +2090,12 @@ &PciConfig, sizeof(ULONG));
- /* There is nothing there */ - if (DataSize < sizeof(ULONG)) + /* If result of HalGetBusData is 0, then the bus is wrong */ + if (DataSize == 0) return FALSE;
+ /* If result is PCI_INVALID_VENDORID, then this device has no more + "Functions" */ if (PciConfig.VendorID == PCI_INVALID_VENDORID) break;