From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Tue, 17 Sep 2019 12:50:13 -0700 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3B72F1918645; Tue, 17 Sep 2019 19:50:13 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-37.rdu2.redhat.com [10.10.120.37]) by smtp.corp.redhat.com (Postfix) with ESMTP id F12E4600C8; Tue, 17 Sep 2019 19:50:11 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Hao A Wu , Jian J Wang , Ray Ni Subject: [PATCH 14/35] MdeModulePkg: fix UninstallMultipleProtocolInterfaces() calls Date: Tue, 17 Sep 2019 21:49:14 +0200 Message-Id: <20190917194935.24322-15-lersek@redhat.com> In-Reply-To: <20190917194935.24322-1-lersek@redhat.com> References: <20190917194935.24322-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.70]); Tue, 17 Sep 2019 19:50:13 +0000 (UTC) Content-Transfer-Encoding: quoted-printable Unlike the InstallMultipleProtocolInterfaces() boot service, which takes an (EFI_HANDLE*) as first parameter, the UninstallMultipleProtocolInterfaces() boot service takes an EFI_HANDLE as first parameter. These are actual bugs. They must have remained hidden until now because they are on error paths. Fix the UninstallMultipleProtocolInterfaces() calls. Cc: Hao A Wu Cc: Jian J Wang Cc: Ray Ni Signed-off-by: Laszlo Ersek --- Notes: build-tested only MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c | 2 +- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c | 2 +- MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c | 6 +++--- MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c | 2 +- MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c | 2 +- MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c | 2 +- MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c b/MdeModulePkg/Bus/I2c/= I2cDxe/I2cBus.c index 2b54ec51dca0..ed33a51da252 100644 --- a/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c +++ b/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c @@ -720,7 +720,7 @@ Error: =20 if (I2cBusContext !=3D NULL) { Status =3D gBS->UninstallMultipleProtocolInterfaces ( - &Controller, + Controller, gEfiCallerIdGuid, I2cBusContext, NULL diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c b/MdeModuleP= kg/Bus/Pci/NvmExpressDxe/NvmExpress.c index c6e401176a4b..3bde96bc9576 100644 --- a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c +++ b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c @@ -244,7 +244,7 @@ EnumerateNvmeDevNamespace ( ); if(EFI_ERROR(Status)) { gBS->UninstallMultipleProtocolInterfaces ( - &Device->DeviceHandle, + Device->DeviceHandle, &gEfiDevicePathProtocolGuid, Device->DevicePath, &gEfiBlockIoProtocolGuid, diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c b/MdeModul= ePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c index b7832c6970ad..292dd25da817 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c @@ -313,7 +313,7 @@ RegisterPciDevice ( ); if (EFI_ERROR (Status)) { gBS->UninstallMultipleProtocolInterfaces ( - &PciIoDevice->Handle, + PciIoDevice->Handle, &gEfiDevicePathProtocolGuid, PciIoDevice->DevicePath, &gEfiPciIoProtocolGuid, @@ -351,7 +351,7 @@ RegisterPciDevice ( ); if (EFI_ERROR (Status)) { gBS->UninstallMultipleProtocolInterfaces ( - &PciIoDevice->Handle, + PciIoDevice->Handle, &gEfiDevicePathProtocolGuid, PciIoDevice->DevicePath, &gEfiPciIoProtocolGuid, @@ -360,7 +360,7 @@ RegisterPciDevice ( ); if (HasEfiImage) { gBS->UninstallMultipleProtocolInterfaces ( - &PciIoDevice->Handle, + PciIoDevice->Handle, &gEfiLoadFile2ProtocolGuid, &PciIoDevice->LoadFile2, NULL diff --git a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c b/MdeModulePkg= /Bus/Pci/PciSioSerialDxe/Serial.c index 82db93a8b117..9fe8a482e067 100644 --- a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c +++ b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c @@ -665,7 +665,7 @@ CreateSerialDevice ( =20 if (EFI_ERROR (Status)) { gBS->UninstallMultipleProtocolInterfaces ( - &SerialDevice->Handle, + SerialDevice->Handle, &gEfiDevicePathProtocolGuid, SerialDevice->DevicePath, &gEfiSerialIoProtocolGuid, &SerialDevice->SerialIo, NULL diff --git a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c b/MdeModulePkg/Bus/Sd/= EmmcDxe/EmmcDxe.c index 62f18d1878bd..e2ae56c5058a 100644 --- a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c +++ b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c @@ -475,7 +475,7 @@ InstallProtocolOnPartition ( ); if (EFI_ERROR (Status)) { gBS->UninstallMultipleProtocolInterfaces ( - &Partition->Handle, + Partition->Handle, &gEfiDevicePathProtocolGuid, Partition->DevicePath, &gEfiBlockIoProtocolGuid, diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c b/MdeModulePkg/Bu= s/Usb/UsbBusDxe/UsbEnumer.c index eaa0d70024bb..cc0de52de411 100644 --- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c +++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c @@ -159,7 +159,7 @@ UsbCreateInterface ( =20 if (EFI_ERROR (Status)) { gBS->UninstallMultipleProtocolInterfaces ( - &UsbIf->Handle, + UsbIf->Handle, &gEfiDevicePathProtocolGuid, UsbIf->DevicePath, &gEfiUsbIoProtocolGuid, diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c b/MdeMo= dulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c index 8c27e18cdb87..0dcbc5da2cb8 100644 --- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c +++ b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c @@ -575,7 +575,7 @@ UsbMassInitMultiLun ( if (EFI_ERROR (Status)) { DEBUG ((EFI_D_ERROR, "UsbMassInitMultiLun: OpenUsbIoProtocol By Ch= ild (%r)\n", Status)); gBS->UninstallMultipleProtocolInterfaces ( - &UsbMass->Controller, + UsbMass->Controller, &gEfiDevicePathProtocolGuid, UsbMass->DevicePath, &gEfiBlockIoProtocolGuid, --=20 2.19.1.3.g30247aa5d201