Reviewed-by: Erik Bjorge <[email protected]>
> -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Lee Leahy > Sent: Thursday, February 25, 2016 6:08 PM > To: Ni, Ruiyu <[email protected]>; Bjorge, Erik C > <[email protected]>; [email protected] > Subject: [edk2] [PATCH v4] DuetPkg-PciBusNoEnumerationDxe: Fix stack > overflow > > When a PCI bridge is not enabled, the secondary bus may still be zero. > This causes an infinite recursive call to enumerate bus 0 which results > in a stack overflow. The easy fix is to skip the recursive bus > enumeration for bridges which do not have the secondary bus initialized. > > TEST=Build and run CorebootPayloadPkg on Quark/Galileo Gen2 > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Lee Leahy <[email protected]> > --- > DuetPkg/PciBusNoEnumerationDxe/PciEnumeratorSupport.c | 13 +++++++----- > - > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/DuetPkg/PciBusNoEnumerationDxe/PciEnumeratorSupport.c > b/DuetPkg/PciBusNoEnumerationDxe/PciEnumeratorSupport.c > index 80b2b6b..6b7dceb 100644 > --- a/DuetPkg/PciBusNoEnumerationDxe/PciEnumeratorSupport.c > +++ b/DuetPkg/PciBusNoEnumerationDxe/PciEnumeratorSupport.c > @@ -257,13 +257,14 @@ Returns: > } > > // > - // Deep enumerate the next level bus > + // If the PCI bridge is initialized then enumerate the next > level bus > // > - Status = PciPciDeviceInfoCollector ( > - PciIoDevice, > - (UINT8) (SecBus) > - ); > - > + if (SecBus != 0) { > + Status = PciPciDeviceInfoCollector ( > + PciIoDevice, > + (UINT8) (SecBus) > + ); > + } > } > > if (Func == 0 && !IS_PCI_MULTI_FUNC (&Pci)) { > -- > 1.9.1 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

