From 5dfba97c4d59613581f6fcc039846ff5c5817b1f Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 4 Sep 2017 20:48:31 +0200 Subject: OvmfPkg/SataControllerDxe: log informative message 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. (In fact it is so much an expected condition that recent USWG Mantis ticket will codify its additional edk2-specific behavior, namely to output the protocol interface at once.) 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, "SataControllerStart START", and "SataControllerStart END status = %r" (at which point Status can only be EFI_SUCCESS). Cc: Jordan Justen Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek --- OvmfPkg/SataControllerDxe/SataController.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'OvmfPkg/SataControllerDxe') diff --git a/OvmfPkg/SataControllerDxe/SataController.c b/OvmfPkg/SataControllerDxe/SataController.c index 1f84ad034e..2a5c3ba9f1 100644 --- a/OvmfPkg/SataControllerDxe/SataController.c +++ b/OvmfPkg/SataControllerDxe/SataController.c @@ -388,6 +388,7 @@ SataControllerStart ( IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath ) { + UINTN BailLogMask; EFI_STATUS Status; EFI_PCI_IO_PROTOCOL *PciIo; UINT64 OriginalPciAttributes; @@ -398,6 +399,7 @@ SataControllerStart ( DEBUG ((EFI_D_INFO, "SataControllerStart START\n")); + BailLogMask = DEBUG_ERROR; SataPrivateData = NULL; // @@ -412,6 +414,14 @@ 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. + // + BailLogMask = DEBUG_INFO; + } goto Bail; } @@ -542,7 +552,8 @@ ClosePciIo: ); Bail: - DEBUG ((EFI_D_ERROR, "SataControllerStart error return status = %r\n", Status)); + DEBUG ((BailLogMask, "SataControllerStart error return status = %r\n", + Status)); return Status; } -- cgit v1.2.3