mirror of https://github.com/acidanthera/audk.git
OvmfPkg/PvScsiDxe: Open PciIo protocol for later use
This will give us an exclusive access to the PciIo of this device after it was started and until it will be stopped. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2567 Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Liran Alon <liran.alon@oracle.com> Message-Id: <20200328200100.60786-9-liran.alon@oracle.com> Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
This commit is contained in:
parent
9c2d8281af
commit
c08eaaaf37
|
@ -412,11 +412,23 @@ PvScsiDriverBindingStart (
|
|||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Status = PvScsiInit (Dev);
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiPciIoProtocolGuid,
|
||||
(VOID **)&Dev->PciIo,
|
||||
This->DriverBindingHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto FreePvScsi;
|
||||
}
|
||||
|
||||
Status = PvScsiInit (Dev);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto ClosePciIo;
|
||||
}
|
||||
|
||||
//
|
||||
// Setup complete, attempt to export the driver instance's PassThru interface
|
||||
//
|
||||
|
@ -436,6 +448,14 @@ PvScsiDriverBindingStart (
|
|||
UninitDev:
|
||||
PvScsiUninit (Dev);
|
||||
|
||||
ClosePciIo:
|
||||
gBS->CloseProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiPciIoProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
ControllerHandle
|
||||
);
|
||||
|
||||
FreePvScsi:
|
||||
FreePool (Dev);
|
||||
|
||||
|
@ -481,6 +501,13 @@ PvScsiDriverBindingStop (
|
|||
|
||||
PvScsiUninit (Dev);
|
||||
|
||||
gBS->CloseProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiPciIoProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
ControllerHandle
|
||||
);
|
||||
|
||||
FreePool (Dev);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
EFI_PCI_IO_PROTOCOL *PciIo;
|
||||
UINT8 MaxTarget;
|
||||
UINT8 MaxLun;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru;
|
||||
|
|
Loading…
Reference in New Issue