From 897a2b447e0f71eb0d102ad707f3688c102d9cec Mon Sep 17 00:00:00 2001 From: Pedro Falcato Date: Thu, 1 Jun 2023 18:27:30 +0100 Subject: MdeModulePkg/SataControllerDxe: Log expected errors at DEBUG_INFO level 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) Signed-off-by: Pedro Falcato Reviewed-by: Laszlo Ersek Reviewed-by: Hao A Wu --- MdeModulePkg/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 d67a3e69f6..277bc6182d 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; } -- cgit v1.2.3