On 10 September 2018 at 09:12, dandan bi <dandan...@intel.com> wrote:
> From: Dandan Bi <dandan...@intel.com>
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=996
>
> Issue:
> In current code logic, when a key is pressed, it will search
> the whole NotifyList to find whether a notification has been
> registered with the keystroke. if yes, it will en-queue the
> key for notification execution later. And now if different
> notification functions have been registered with the same key,
> then the key will be en-queued more than once. Then it will
> cause the notification executed more than once.
>
> This patch is to enhance the code logic to fix this issue.
>
> Cc: Ruiyu Ni <ruiyu...@intel.com>
> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Cc: Leif Lindholm <leif.lindh...@linaro.org>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Dandan Bi <dandan...@intel.com>

Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org>

> ---
>  EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c 
> b/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c
> index 6609bc8dbe..daea9c47d2 100644
> --- a/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c
> +++ b/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c
> @@ -1,9 +1,9 @@
>  /** @file
>    VirtualKeyboard driver
>
> -Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
>  Copyright (c) 2018, Linaro Ltd. 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
> @@ -1043,10 +1043,11 @@ VirtualKeyboardTimerHandler (
>        // while current TPL is TPL_NOTIFY. It will be invoked in
>        // KeyNotifyProcessHandler() which runs at TPL_CALLBACK.
>        //
>        Enqueue (&VirtualKeyboardPrivate->QueueForNotify, &KeyData);
>        gBS->SignalEvent (VirtualKeyboardPrivate->KeyNotifyProcessEvent);
> +      break;
>      }
>    }
>
>    Enqueue (&VirtualKeyboardPrivate->Queue, &KeyData);
>
> --
> 2.14.3.windows.1
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to