Hi All ,
     I found a logic error in SataControllerStop of 
OvmfPkg\SataControllerDxe\SataController.c.
    The following code will first free SataPrivateData ,then try to use 
SataPrivateData....


if (SataPrivateData != NULL) {
    if (SataPrivateData->DisqualifiedModes != NULL) {
      FreePool (SataPrivateData->DisqualifiedModes);
    }
    if (SataPrivateData->IdentifyData != NULL) {
      FreePool (SataPrivateData->IdentifyData);
    }
    if (SataPrivateData->IdentifyValid != NULL) {
      FreePool (SataPrivateData->IdentifyValid);
    }
    FreePool (SataPrivateData);
  }


  //
  // Restore original PCI attributes
  //
  SataPrivateData->PciIo->Attributes (
                            SataPrivateData->PciIo,
                            EfiPciIoAttributeOperationSet,
                            SataPrivateData->OriginalPciAttributes,
                            NULL
                            );
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to