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>
This commit is contained in:
		| @@ -388,6 +388,7 @@ SataControllerStart ( | |||||||
|   IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath |   IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath | ||||||
|   ) |   ) | ||||||
| { | { | ||||||
|  |   UINTN                             BailLogMask; | ||||||
|   EFI_STATUS                        Status; |   EFI_STATUS                        Status; | ||||||
|   EFI_PCI_IO_PROTOCOL               *PciIo; |   EFI_PCI_IO_PROTOCOL               *PciIo; | ||||||
|   UINT64                            OriginalPciAttributes; |   UINT64                            OriginalPciAttributes; | ||||||
| @@ -398,6 +399,7 @@ SataControllerStart ( | |||||||
|  |  | ||||||
|   DEBUG ((EFI_D_INFO, "SataControllerStart START\n")); |   DEBUG ((EFI_D_INFO, "SataControllerStart START\n")); | ||||||
|  |  | ||||||
|  |   BailLogMask = DEBUG_ERROR; | ||||||
|   SataPrivateData = NULL; |   SataPrivateData = NULL; | ||||||
|  |  | ||||||
|   // |   // | ||||||
| @@ -412,6 +414,14 @@ SataControllerStart ( | |||||||
|                   EFI_OPEN_PROTOCOL_BY_DRIVER |                   EFI_OPEN_PROTOCOL_BY_DRIVER | ||||||
|                   ); |                   ); | ||||||
|   if (EFI_ERROR (Status)) { |   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; |     goto Bail; | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -542,7 +552,8 @@ ClosePciIo: | |||||||
|          ); |          ); | ||||||
|  |  | ||||||
| Bail: | Bail: | ||||||
|   DEBUG ((EFI_D_ERROR, "SataControllerStart error return status = %r\n", Status)); |   DEBUG ((BailLogMask, "SataControllerStart error return status = %r\n", | ||||||
|  |     Status)); | ||||||
|   return Status; |   return Status; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user