summaryrefslogtreecommitdiffstats
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.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.c4
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,