When a UEFI_DRIVER attempts to open a protocol interface with BY_DRIVER
attribute that it already has open with BY_DRIVER attribute,
OpenProtocol() returns EFI_ALREADY_STARTED. This is not an error. The
UEFI-2.7 spec currently says,
> EFI_ALREADY_STARTED -- Attributes is BY_DRIVER and there is an item on
> the open list with an attribute of BY_DRIVER
> whose agent handle is the same as AgentHandle.
Downgrade the log mask for this one condition to DEBUG_INFO, in
SataControllerStart(). This will match the log mask of the other two
informative messages in this function.
(ported from commit 5dfba97)
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Pedro Falcato <pedro.falcato@gmail.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
---
.../Bus/Pci/SataControllerDxe/SataController.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
index d67a3e69f649..277bc6182db6 100644
--- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
+++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
@@ -358,10 +358,12 @@ SataControllerStart (
UINTN TotalCount;
UINT64 Supports;
UINT8 MaxPortNumber;
+ UINTN BailLogMask;
DEBUG ((DEBUG_INFO, "SataControllerStart start\n"));
- Private = NULL;
+ Private = NULL;
+ BailLogMask = DEBUG_ERROR;
//
// Now test and open PCI I/O Protocol
@@ -375,6 +377,15 @@ SataControllerStart (
EFI_OPEN_PROTOCOL_BY_DRIVER
);
if (EFI_ERROR (Status)) {
+ if (Status == EFI_ALREADY_STARTED) {
+ //
+ // This is an expected condition for OpenProtocol() / BY_DRIVER, in a
+ // DriverBindingStart() member function; degrade the log mask to
+ // DEBUG_INFO in order to reduce log pollution.
+ //
+ BailLogMask = DEBUG_INFO;
+ }
+
goto Bail;
}
@@ -555,7 +566,7 @@ FreeSataPrivate:
ClosePciIo:
gBS->CloseProtocol (Controller, &gEfiPciIoProtocolGuid, This->DriverBindingHandle, Controller);
Bail:
- DEBUG ((DEBUG_ERROR, "SataControllerStart error return status = %r\n", Status));
+ DEBUG ((BailLogMask, "SataControllerStart error return status = %r\n", Status));
return Status;
}
--
2.40.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#105583): https://edk2.groups.io/g/devel/message/105583
Mute This Topic: https://groups.io/mt/99269910/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-