summaryrefslogtreecommitdiff
path: root/OvmfPkg/XenBusDxe
diff options
context:
space:
mode:
authorAnthony PERARD <anthony.perard@citrix.com>2019-07-01 11:50:12 +0100
committerLaszlo Ersek <lersek@redhat.com>2019-07-01 16:46:46 +0200
commit64ef66ba8b4120f4958dc0275911e10eb927d311 (patch)
treeff972bb776a88e2a3885f022f4a1650f6c1c48dd /OvmfPkg/XenBusDxe
parentbe0d1c17552d6a50d5321561810fb32871b54108 (diff)
downloadedk2-64ef66ba8b4120f4958dc0275911e10eb927d311.zip
edk2-64ef66ba8b4120f4958dc0275911e10eb927d311.tar.gz
edk2-64ef66ba8b4120f4958dc0275911e10eb927d311.tar.bz2
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.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.c b/OvmfPkg/XenBusDxe/XenBusDxe.c
index 0e63707..7c07a96 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,