[edk2-devel] [PATCH 14/35] MdeModulePkg: fix UninstallMultipleProtocolInterfaces() calls
Ni, Ray
ray.ni at intel.com
Tue Sep 17 20:16:08 UTC 2019
Reviewed-by: Ray Ni <ray.ni at intel.com>
> -----Original Message-----
> From: Laszlo Ersek <lersek at redhat.com>
> Sent: Tuesday, September 17, 2019 12:49 PM
> To: edk2-devel-groups-io <devel at edk2.groups.io>
> Cc: Wu, Hao A <hao.a.wu at intel.com>; Wang, Jian J <jian.j.wang at intel.com>; Ni, Ray <ray.ni at intel.com>
> Subject: [PATCH 14/35] MdeModulePkg: fix UninstallMultipleProtocolInterfaces() calls
>
> 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 <hao.a.wu at intel.com>
> Cc: Jian J Wang <jian.j.wang at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Signed-off-by: Laszlo Ersek <lersek at redhat.com>
> ---
>
> 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:
>
> if (I2cBusContext != NULL) {
> Status = gBS->UninstallMultipleProtocolInterfaces (
> - &Controller,
> + Controller,
> gEfiCallerIdGuid,
> I2cBusContext,
> NULL
> diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c
> b/MdeModulePkg/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/MdeModulePkg/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 (
>
> 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/Bus/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 (
>
> if (EFI_ERROR (Status)) {
> gBS->UninstallMultipleProtocolInterfaces (
> - &UsbIf->Handle,
> + UsbIf->Handle,
> &gEfiDevicePathProtocolGuid,
> UsbIf->DevicePath,
> &gEfiUsbIoProtocolGuid,
> diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c
> b/MdeModulePkg/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 Child (%r)\n", Status));
> gBS->UninstallMultipleProtocolInterfaces (
> - &UsbMass->Controller,
> + UsbMass->Controller,
> &gEfiDevicePathProtocolGuid,
> UsbMass->DevicePath,
> &gEfiBlockIoProtocolGuid,
> --
> 2.19.1.3.g30247aa5d201
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#47426): https://edk2.groups.io/g/devel/message/47426
Mute This Topic: https://groups.io/mt/34180215/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list