Committed in r14987. Thanks Chris! (And Laszlo for the r-b.)
On Sun, Dec 15, 2013 at 8:55 AM, Chris Ruffin <[email protected]> wrote: > The QemuVideoDxe driver creates child controller handles, so it is acting > as a hybrid bus driver. The child handles should open the parent's bus > protocol BY_CHILD_CONTROLLER to properly maintain the protocol usage count. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Chris Ruffin <[email protected]> > --- > > Per review, just let the child PciIo protocol interface drop from the stack. > It's unused and isn't needed to close the protocols. > > OvmfPkg/QemuVideoDxe/Driver.c | 33 ++++++++++++++++++++++++++++++++- > 1 file changed, 32 insertions(+), 1 deletion(-) > > diff --git a/OvmfPkg/QemuVideoDxe/Driver.c b/OvmfPkg/QemuVideoDxe/Driver.c > index 53718e1..b253ec7 100644 > --- a/OvmfPkg/QemuVideoDxe/Driver.c > +++ b/OvmfPkg/QemuVideoDxe/Driver.c > @@ -209,6 +209,7 @@ QemuVideoControllerDriverStart ( > PCI_TYPE00 Pci; > QEMU_VIDEO_CARD *Card; > EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *MmioDesc; > + EFI_PCI_IO_PROTOCOL *ChildPciIo; > > PciAttributesSaved = FALSE; > // > @@ -419,6 +420,22 @@ QemuVideoControllerDriverStart ( > &Private->GraphicsOutput, > NULL > ); > + if (EFI_ERROR (Status)) { > + goto Error; > + } > + > + Status = gBS->OpenProtocol ( > + Controller, > + &gEfiPciIoProtocolGuid, > + (VOID **) &ChildPciIo, > + This->DriverBindingHandle, > + Private->Handle, > + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER > + ); > + > + if (EFI_ERROR (Status)) { > + goto Error; > + } > } > > Error: > @@ -440,7 +457,14 @@ Error: > // Close the PCI I/O Protocol > // > gBS->CloseProtocol ( > - Private->Handle, > + Controller, > + &gEfiPciIoProtocolGuid, > + This->DriverBindingHandle, > + Controller > + ); > + > + gBS->CloseProtocol ( > + Controller, > &gEfiPciIoProtocolGuid, > This->DriverBindingHandle, > Private->Handle > @@ -533,6 +557,13 @@ QemuVideoControllerDriverStop ( > Controller > ); > > + gBS->CloseProtocol ( > + Controller, > + &gEfiPciIoProtocolGuid, > + This->DriverBindingHandle, > + Private->Handle > + ); > + > // > // Free our instance data > // > -- > 1.8.4.msysgit.0 > > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
