[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/4] ui/console: Remove console_select()
From: |
Marc-André Lureau |
Subject: |
Re: [PATCH v2 0/4] ui/console: Remove console_select() |
Date: |
Tue, 19 Mar 2024 12:29:43 +0400 |
Hi Akihiko
On Tue, Mar 19, 2024 at 7:09 AM Akihiko Odaki <akihiko.odaki@daynix.com> wrote:
>
> ui/console has a concept of "active" console; the active console is used
> when NULL is set for DisplayListener::con, and console_select() updates
> the active console state. However, the global nature of the state cause
> odd behaviors, and replacing NULL with the active console also resulted
> in extra code. Remove it to solve these problems.
>
> The active console state is shared, so if there are two displays
> referring to the active console, switching the console for one will also
> affect the other. All displays that use the active console state,
> namely cocoa, curses, and vnc, need to reset some of its state before
> switching the console, and such a reset operation cannot be performed if
> the console is switched by another display. This can result in stuck
> keys, for example.
>
> While the active console state is shared, displays other than cocoa,
> curses, and vnc don't update the state. A chardev-vc inherits the
> size of the active console, but it does not make sense for such a
> display.
>
> This series removes the shared "active" console state from ui/console.
> curses, cocoa, and vnc will hold the reference to the console currently
> shown with DisplayListener::con. This also eliminates the need to
> replace NULL with the active console and save code.
>
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
lgtm
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
I am willing to take that for 9.0. Is there any bug already opened
about the issues it solves?
> ---
> Changes in v2:
> - Changed to fall back to a text console if there is no graphical
> console as previously done.
> - Link to v1:
> 20240318-console-v1-0-f4efbfa71253@daynix.com">https://lore.kernel.org/r/20240318-console-v1-0-f4efbfa71253@daynix.com
>
> ---
> Akihiko Odaki (4):
> ui/vc: Do not inherit the size of active console
> ui/vnc: Do not use console_select()
> ui/cocoa: Do not use console_select()
> ui/curses: Do not use console_select()
>
> include/ui/console.h | 2 +-
> include/ui/kbd-state.h | 11 ++++
> ui/console-priv.h | 2 +-
> ui/console-vc-stubs.c | 2 +-
> ui/console-vc.c | 7 ++-
> ui/console.c | 133
> ++++++++++++-------------------------------------
> ui/curses.c | 48 ++++++++++--------
> ui/kbd-state.c | 6 +++
> ui/vnc.c | 14 ++++--
> ui/cocoa.m | 37 ++++++++++----
> 10 files changed, 118 insertions(+), 144 deletions(-)
> ---
> base-commit: ba49d760eb04630e7b15f423ebecf6c871b8f77b
> change-id: 20240317-console-6744d4ab8ba6
>
> Best regards,
> --
> Akihiko Odaki <akihiko.odaki@daynix.com>
>
>
--
Marc-André Lureau