diff options
author | Anthony PERARD <anthony.perard@citrix.com> | 2019-07-01 11:50:12 +0100 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2019-07-01 16:46:46 +0200 |
commit | 64ef66ba8b4120f4958dc0275911e10eb927d311 (patch) | |
tree | ff972bb776a88e2a3885f022f4a1650f6c1c48dd /OvmfPkg/XenBusDxe | |
parent | be0d1c17552d6a50d5321561810fb32871b54108 (diff) | |
download | edk2-64ef66ba8b4120f4958dc0275911e10eb927d311.tar.gz edk2-64ef66ba8b4120f4958dc0275911e10eb927d311.tar.bz2 edk2-64ef66ba8b4120f4958dc0275911e10eb927d311.zip |
OvmfPkg/XenBusDxe: Close XenIoProtocol openned by children
In XenBusDxe, the XenBusAddDevice() opens the gXenIoProtocolGuid on
behalf of child controllers. It is never closed and prevents us from
uninstalling the protocol.
Close it where we stop all the children in XenBusDxe->Stop().
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20190701105012.25758-1-anthony.perard@citrix.com>
Diffstat (limited to 'OvmfPkg/XenBusDxe')
-rw-r--r-- | OvmfPkg/XenBusDxe/XenBusDxe.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.c b/OvmfPkg/XenBusDxe/XenBusDxe.c index 0e63707f50..7c07a96650 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.c +++ b/OvmfPkg/XenBusDxe/XenBusDxe.c @@ -453,6 +453,10 @@ XenBusDxeDriverBindingStop ( continue;
}
+ Status = gBS->CloseProtocol (Dev->ControllerHandle, &gXenIoProtocolGuid,
+ Dev->This->DriverBindingHandle, ChildData->Handle);
+ ASSERT_EFI_ERROR (Status);
+
Status = gBS->UninstallMultipleProtocolInterfaces (
ChildData->Handle,
&gEfiDevicePathProtocolGuid, ChildData->DevicePath,
|