summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/SataControllerDxe
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2017-09-04 20:48:31 +0200
committerLaszlo Ersek <lersek@redhat.com>2017-09-11 22:39:32 +0200
commit5dfba97c4d59613581f6fcc039846ff5c5817b1f (patch)
treea0f154bc4ff1ac26f3b3d1d4f1e5aa2147b1348e /OvmfPkg/SataControllerDxe
parent837d9eea7d276da1d85f3f2398561aeddccf571c (diff)
downloadedk2-5dfba97c4d59613581f6fcc039846ff5c5817b1f.tar.gz
edk2-5dfba97c4d59613581f6fcc039846ff5c5817b1f.tar.bz2
edk2-5dfba97c4d59613581f6fcc039846ff5c5817b1f.zip
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 <https://mantis.uefi.org/mantis/view.php?id=1815> 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 <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'OvmfPkg/SataControllerDxe')
-rw-r--r--OvmfPkg/SataControllerDxe/SataController.c13
1 files changed, 12 insertions, 1 deletions
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;
}