All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] braille-console: Fix value returned by _braille_console_setup
@ 2017-03-19 14:37 Samuel Thibault
  2017-03-19 15:44 ` Aleksey Makarov
  2017-03-24 16:41 ` Petr Mladek
  0 siblings, 2 replies; 4+ messages in thread
From: Samuel Thibault @ 2017-03-19 14:37 UTC (permalink / raw)
  To: Steven Rostedt, Petr Mladek, Ming Lei, Aleksey Makarov,
	linux-serial, Joe Perches, linux-kernel

commit bbeddf52adc1 ("printk: move braille console support into
separate braille.[ch] files") introduced _braille_console_setup()
to outline the braille initialization code.  There was however some
confusion over the value it was supposed to return. commit 2cfe6c4ac7ee
("printk: Fix return of braille_register_console()") tried to fix it
but failed to.

This fixes and documents the returned value according to the use
in printk.c: non-zero return means a parsing error, and thus this
console configuration should be ignored.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Aleksey Makarov <aleksey.makarov@linaro.org>
Cc: Joe Perches <joe@perches.com>
Cc: Ming Lei <ming.lei@canonical.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Petr Mladek <pmladek@suse.com>

Index: linux-4.10/kernel/printk/braille.c
===================================================================
--- linux-4.10.orig/kernel/printk/braille.c
+++ linux-4.10/kernel/printk/braille.c
@@ -2,12 +2,13 @@
 
 #include <linux/kernel.h>
 #include <linux/console.h>
+#include <linux/errno.h>
 #include <linux/string.h>
 
 #include "console_cmdline.h"
 #include "braille.h"
 
-char *_braille_console_setup(char **str, char **brl_options)
+int _braille_console_setup(char **str, char **brl_options)
 {
 	if (!strncmp(*str, "brl,", 4)) {
 		*brl_options = "";
@@ -15,14 +16,15 @@ char *_braille_console_setup(char **str,
 	} else if (!strncmp(*str, "brl=", 4)) {
 		*brl_options = *str + 4;
 		*str = strchr(*brl_options, ',');
-		if (!*str)
+		if (!*str) {
 			pr_err("need port name after brl=\n");
+			return -EINVAL;
+		}
 		else
 			*((*str)++) = 0;
-	} else
-		return NULL;
+	}
 
-	return *str;
+	return 0;
 }
 
 int
Index: linux-4.10/kernel/printk/braille.h
===================================================================
--- linux-4.10.orig/kernel/printk/braille.h
+++ linux-4.10/kernel/printk/braille.h
@@ -9,7 +9,14 @@ braille_set_options(struct console_cmdli
 	c->brl_options = brl_options;
 }
 
-char *
+/*
+ * Setup console according to braille options.
+ * Return -EINVAL on syntax error, 0 on success (or no braille option was
+ * actually given).
+ * Modifies str to point to the serial options
+ * Sets brl_options to the parsed braille options.
+ */
+int
 _braille_console_setup(char **str, char **brl_options);
 
 int
@@ -25,10 +32,10 @@ braille_set_options(struct console_cmdli
 {
 }
 
-static inline char *
+static inline int
 _braille_console_setup(char **str, char **brl_options)
 {
-	return NULL;
+	return 0;
 }
 
 static inline int

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] braille-console: Fix value returned by _braille_console_setup
  2017-03-19 14:37 [PATCH] braille-console: Fix value returned by _braille_console_setup Samuel Thibault
@ 2017-03-19 15:44 ` Aleksey Makarov
  2017-03-19 15:50   ` Samuel Thibault
  2017-03-24 16:41 ` Petr Mladek
  1 sibling, 1 reply; 4+ messages in thread
From: Aleksey Makarov @ 2017-03-19 15:44 UTC (permalink / raw)
  To: Samuel Thibault
  Cc: Steven Rostedt, Petr Mladek, Ming Lei, linux-serial, Joe Perches,
	linux-kernel



On 03/19/2017 05:37 PM, Samuel Thibault wrote:
> commit bbeddf52adc1 ("printk: move braille console support into
> separate braille.[ch] files") introduced _braille_console_setup()
> to outline the braille initialization code.  There was however some
> confusion over the value it was supposed to return. commit 2cfe6c4ac7ee
> ("printk: Fix return of braille_register_console()") tried to fix it
> but failed to.
>
> This fixes and documents the returned value according to the use
> in printk.c: non-zero return means a parsing error, and thus this
> console configuration should be ignored.

Did you test the code on real braille hardware?
I am asking because there could also be other problems with the code
that have not been run for 3 years since it was changed.

Thank you
Aleksey Makarov

> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
> Cc: Aleksey Makarov <aleksey.makarov@linaro.org>
> Cc: Joe Perches <joe@perches.com>
> Cc: Ming Lei <ming.lei@canonical.com>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Petr Mladek <pmladek@suse.com>
>
> Index: linux-4.10/kernel/printk/braille.c
> ===================================================================
> --- linux-4.10.orig/kernel/printk/braille.c
> +++ linux-4.10/kernel/printk/braille.c
> @@ -2,12 +2,13 @@
>
>  #include <linux/kernel.h>
>  #include <linux/console.h>
> +#include <linux/errno.h>
>  #include <linux/string.h>
>
>  #include "console_cmdline.h"
>  #include "braille.h"
>
> -char *_braille_console_setup(char **str, char **brl_options)
> +int _braille_console_setup(char **str, char **brl_options)
>  {
>  	if (!strncmp(*str, "brl,", 4)) {
>  		*brl_options = "";
> @@ -15,14 +16,15 @@ char *_braille_console_setup(char **str,
>  	} else if (!strncmp(*str, "brl=", 4)) {
>  		*brl_options = *str + 4;
>  		*str = strchr(*brl_options, ',');
> -		if (!*str)
> +		if (!*str) {
>  			pr_err("need port name after brl=\n");
> +			return -EINVAL;
> +		}
>  		else
>  			*((*str)++) = 0;
> -	} else
> -		return NULL;
> +	}
>
> -	return *str;
> +	return 0;
>  }
>
>  int
> Index: linux-4.10/kernel/printk/braille.h
> ===================================================================
> --- linux-4.10.orig/kernel/printk/braille.h
> +++ linux-4.10/kernel/printk/braille.h
> @@ -9,7 +9,14 @@ braille_set_options(struct console_cmdli
>  	c->brl_options = brl_options;
>  }
>
> -char *
> +/*
> + * Setup console according to braille options.
> + * Return -EINVAL on syntax error, 0 on success (or no braille option was
> + * actually given).
> + * Modifies str to point to the serial options
> + * Sets brl_options to the parsed braille options.
> + */
> +int
>  _braille_console_setup(char **str, char **brl_options);
>
>  int
> @@ -25,10 +32,10 @@ braille_set_options(struct console_cmdli
>  {
>  }
>
> -static inline char *
> +static inline int
>  _braille_console_setup(char **str, char **brl_options)
>  {
> -	return NULL;
> +	return 0;
>  }
>
>  static inline int
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] braille-console: Fix value returned by _braille_console_setup
  2017-03-19 15:44 ` Aleksey Makarov
@ 2017-03-19 15:50   ` Samuel Thibault
  0 siblings, 0 replies; 4+ messages in thread
From: Samuel Thibault @ 2017-03-19 15:50 UTC (permalink / raw)
  To: Aleksey Makarov
  Cc: Steven Rostedt, Petr Mladek, Ming Lei, linux-serial, Joe Perches,
	linux-kernel

Aleksey Makarov, on dim. 19 mars 2017 18:44:23 +0300, wrote:
> On 03/19/2017 05:37 PM, Samuel Thibault wrote:
> > commit bbeddf52adc1 ("printk: move braille console support into
> > separate braille.[ch] files") introduced _braille_console_setup()
> > to outline the braille initialization code.  There was however some
> > confusion over the value it was supposed to return. commit 2cfe6c4ac7ee
> > ("printk: Fix return of braille_register_console()") tried to fix it
> > but failed to.
> > 
> > This fixes and documents the returned value according to the use
> > in printk.c: non-zero return means a parsing error, and thus this
> > console configuration should be ignored.
> 
> Did you test the code on real braille hardware?

Not on actual hardware, but I checked that the output on the serial port
is what is expected.

> I am asking because there could also be other problems with the code
> that have not been run for 3 years since it was changed.

The code which actually implements the braille protocol has not changed
since it was tested.

Samuel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] braille-console: Fix value returned by _braille_console_setup
  2017-03-19 14:37 [PATCH] braille-console: Fix value returned by _braille_console_setup Samuel Thibault
  2017-03-19 15:44 ` Aleksey Makarov
@ 2017-03-24 16:41 ` Petr Mladek
  1 sibling, 0 replies; 4+ messages in thread
From: Petr Mladek @ 2017-03-24 16:41 UTC (permalink / raw)
  To: Samuel Thibault, Steven Rostedt, Ming Lei, Aleksey Makarov,
	linux-serial, Joe Perches, linux-kernel

On Sun 2017-03-19 15:37:26, Samuel Thibault wrote:
> commit bbeddf52adc1 ("printk: move braille console support into
> separate braille.[ch] files") introduced _braille_console_setup()
> to outline the braille initialization code.  There was however some
> confusion over the value it was supposed to return. commit 2cfe6c4ac7ee
> ("printk: Fix return of braille_register_console()") tried to fix it
> but failed to.
> 
> This fixes and documents the returned value according to the use
> in printk.c: non-zero return means a parsing error, and thus this
> console configuration should be ignored.
> 
> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
> Cc: Aleksey Makarov <aleksey.makarov@linaro.org>
> Cc: Joe Perches <joe@perches.com>
> Cc: Ming Lei <ming.lei@canonical.com>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Petr Mladek <pmladek@suse.com>
> 
> Index: linux-4.10/kernel/printk/braille.c
> ===================================================================
> --- linux-4.10.orig/kernel/printk/braille.c
> +++ linux-4.10/kernel/printk/braille.c
> @@ -2,12 +2,13 @@
>  
>  #include <linux/kernel.h>
>  #include <linux/console.h>
> +#include <linux/errno.h>
>  #include <linux/string.h>
>  
>  #include "console_cmdline.h"
>  #include "braille.h"
>  
> -char *_braille_console_setup(char **str, char **brl_options)
> +int _braille_console_setup(char **str, char **brl_options)
>  {
>  	if (!strncmp(*str, "brl,", 4)) {
>  		*brl_options = "";
> @@ -15,14 +16,15 @@ char *_braille_console_setup(char **str,
>  	} else if (!strncmp(*str, "brl=", 4)) {
>  		*brl_options = *str + 4;
>  		*str = strchr(*brl_options, ',');
> -		if (!*str)
> +		if (!*str) {
>  			pr_err("need port name after brl=\n");
> +			return -EINVAL;
> +		}
>  		else

This "else" has become superfluous because there is return now.

>  			*((*str)++) = 0;
> -	} else
> -		return NULL;
> +	}
>  
> -	return *str;
> +	return 0;
>  }

Otherwise, the patch looks fine to me. With it, the logic is
exactly the same as before the commit bbeddf52adc1b4207674ab
("printk: move braille console support into separate braille.[ch]
files") that broke it.

With the superfluous "else" removed:

Acked-by: Petr Mladek <pmladek@suse.com>

Best Regards,
Petr

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-03-24 16:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-19 14:37 [PATCH] braille-console: Fix value returned by _braille_console_setup Samuel Thibault
2017-03-19 15:44 ` Aleksey Makarov
2017-03-19 15:50   ` Samuel Thibault
2017-03-24 16:41 ` Petr Mladek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.