Patchwork char: hvc: check for error case

login
register
mail settings
Submitter Kulikov Vasiliy
Date Sept. 12, 2010, 6:57 p.m.
Message ID <1284317835-5086-1-git-send-email-segooon@gmail.com>
Download mbox | patch
Permalink /patch/64558/
State Not Applicable
Headers show

Comments

Kulikov Vasiliy - Sept. 12, 2010, 6:57 p.m.
hvc_alloc() may fail, if so exit from init() with error.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
---
 I cannot compile this driver at all, so it is not tested.

 drivers/char/hvc_tile.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
Chris Metcalf - Sept. 13, 2010, 1:12 p.m.
On 9/12/2010 2:57 PM, Vasiliy Kulikov wrote:
> hvc_alloc() may fail, if so exit from init() with error.
>
> Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>

Thanks, accepted into my tree (for the next merge window).  In practice all
this means is in debug mode we'll get a warning from do_one_initcall()
rather than silence, but you're right, it's technically better. :-)

> ---
>  I cannot compile this driver at all, so it is not tested.
>
>  drivers/char/hvc_tile.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/hvc_tile.c b/drivers/char/hvc_tile.c
> index c4efb55..7a84a05 100644
> --- a/drivers/char/hvc_tile.c
> +++ b/drivers/char/hvc_tile.c
> @@ -61,7 +61,8 @@ console_initcall(hvc_tile_console_init);
>  
>  static int __init hvc_tile_init(void)
>  {
> -	hvc_alloc(0, 0, &hvc_tile_get_put_ops, 128);
> -	return 0;
> +	struct hvc_struct *s;
> +	s = hvc_alloc(0, 0, &hvc_tile_get_put_ops, 128);
> +	return IS_ERR(s) ? PTR_ERR(s) : 0;
>  }
>  device_initcall(hvc_tile_init);
Kulikov Vasiliy - Sept. 13, 2010, 1:32 p.m.
On Mon, Sep 13, 2010 at 09:12 -0400, Chris Metcalf wrote:
> Thanks, accepted into my tree (for the next merge window).  In practice all
> this means is in debug mode we'll get a warning from do_one_initcall()
> rather than silence, but you're right, it's technically better. :-)

Anyway it's better, if user sees warning in the dmesg, he/she might
response to this situation.


Best,

Patch

diff --git a/drivers/char/hvc_tile.c b/drivers/char/hvc_tile.c
index c4efb55..7a84a05 100644
--- a/drivers/char/hvc_tile.c
+++ b/drivers/char/hvc_tile.c
@@ -61,7 +61,8 @@  console_initcall(hvc_tile_console_init);
 
 static int __init hvc_tile_init(void)
 {
-	hvc_alloc(0, 0, &hvc_tile_get_put_ops, 128);
-	return 0;
+	struct hvc_struct *s;
+	s = hvc_alloc(0, 0, &hvc_tile_get_put_ops, 128);
+	return IS_ERR(s) ? PTR_ERR(s) : 0;
 }
 device_initcall(hvc_tile_init);