X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OptionRomPkg%2FCirrusLogic5430Dxe%2FCirrusLogic5430.c;h=424e19df1eec5b96fad0010b17608707352b3419;hp=eb5ce3b6fcea847d312025dfa8cf9845fab92ba0;hb=6a6d955c5f670141344c614c65dbea332f393b57;hpb=94b73c2482a415da50c5b13c42753ac6f1548c07 diff --git a/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.c b/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.c index eb5ce3b6fc..424e19df1e 100644 --- a/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.c +++ b/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.c @@ -211,7 +211,9 @@ CirrusLogic5430ControllerDriverStart ( { EFI_STATUS Status; CIRRUS_LOGIC_5430_PRIVATE_DATA *Private; + BOOLEAN PciAttributesSaved; + PciAttributesSaved = FALSE; // // Allocate Private context data for UGA Draw inteface. // @@ -255,6 +257,7 @@ CirrusLogic5430ControllerDriverStart ( if (EFI_ERROR (Status)) { goto Error; } + PciAttributesSaved = TRUE; Status = Private->PciIo->Attributes ( Private->PciIo, @@ -319,16 +322,17 @@ Error: if (EFI_ERROR (Status)) { if (Private) { if (Private->PciIo) { - // - // Restore original PCI attributes - // - Private->PciIo->Attributes ( - Private->PciIo, - EfiPciIoAttributeOperationSet, - Private->OriginalPciAttributes, - NULL - ); - + if (PciAttributesSaved == TRUE) { + // + // Restore original PCI attributes + // + Private->PciIo->Attributes ( + Private->PciIo, + EfiPciIoAttributeOperationSet, + Private->OriginalPciAttributes, + NULL + ); + } // // Close the PCI I/O Protocol //