On 11/25/15 02:33, Star Zeng wrote:
> The SerialIo->GetControl() function is not required to set the
> Control output parameter on error. Make sure we apply the
> EFI_SERIAL_INPUT_BUFFER_EMPTY optimization in
> TerminalConInTimerHandler() only if the SerialIo->GetControl()
> function call set that bit in the Control variable.
> 
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <liming....@intel.com>
> Cc: Feng Tian <feng.t...@intel.com>
> Cc: Laszlo Ersek <ler...@redhat.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Suggested-by: Laszlo Ersek <ler...@redhat.com>
> Signed-off-by: Star Zeng <star.z...@intel.com>
> ---
>  MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c 
> b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> index c216ed9..3be877b 100644
> --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
> @@ -2,7 +2,7 @@
>    Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol.
>  
>  (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> -Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
>  This program and the accompanying materials
>  are licensed and made available under the terms and conditions of the BSD 
> License
>  which accompanies this distribution.  The full text of the license may be 
> found at
> @@ -562,10 +562,11 @@ TerminalConInTimerHandler (
>    }
>    //
>    // Check whether serial buffer is empty.
> +  // Skip the key transfer loop only if the SerialIo protocol instance
> +  // successfully reports EFI_SERIAL_INPUT_BUFFER_EMPTY.
>    //
>    Status = SerialIo->GetControl (SerialIo, &Control);
> -
> -  if ((Control & EFI_SERIAL_INPUT_BUFFER_EMPTY) == 0) {
> +  if (EFI_ERROR (Status) || ((Control & EFI_SERIAL_INPUT_BUFFER_EMPTY) == 
> 0)) {
>      //
>      // Fetch all the keys in the serial buffer,
>      // and insert the byte stream into RawFIFO.
> 

Reviewed-by: Laszlo Ersek <ler...@redhat.com>

Thanks!
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to