Messages in this thread | | | Date | Mon, 27 Jan 2020 11:41:14 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH v2 1/5] console: Don't perform test for CON_BRL flag twice |
| |
On (20/01/24 17:57), Andy Shevchenko wrote: [..] > +++ b/drivers/accessibility/braille/braille_console.c > @@ -369,10 +369,10 @@ int braille_register_console(struct console *console, int index, > > int braille_unregister_console(struct console *console) > { > - if (braille_co != console) > - return -EINVAL; > if (!(console->flags & CON_BRL)) > return 0; > + if (braille_co != console) > + return -EINVAL; > unregister_keyboard_notifier(&keyboard_notifier_block); > unregister_vt_notifier(&vt_notifier_block); > braille_co = NULL; > diff --git a/kernel/printk/braille.c b/kernel/printk/braille.c > index 17a9591e54ff..2ec42173890f 100644 > --- a/kernel/printk/braille.c > +++ b/kernel/printk/braille.c > @@ -51,8 +51,5 @@ _braille_register_console(struct console *console, struct console_cmdline *c) > int > _braille_unregister_console(struct console *console) > { > - if (console->flags & CON_BRL) > - return braille_unregister_console(console); > - > - return 0; > + return braille_unregister_console(console); > }
Hmm, I don't know. This moves sort of important code from common upper layer down to particular driver implementation. Should there be another driver/super-braille.c it must test CON_BRL flag as well. Because printk invokes _braille_unregister_console() unconditionally, and _braille_unregister_console() unconditionally calls into the driver.
I guess we can remove CON_BRL from braille_unregister_console() instead, because printk tests it.
-ss
| |