Message ID | 1438992995-22610-1-git-send-email-timur@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, Aug 08, 2015 at 01:16:33AM +0100, Timur Tabi wrote: > hvc_instantiate() and hvc_alloc() return errors if they fail, so don't > ignore them. > > Signed-off-by: Timur Tabi <timur@codeaurora.org> > --- > drivers/tty/hvc/hvc_dcc.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/drivers/tty/hvc/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c > index 809920d..47654ea 100644 > --- a/drivers/tty/hvc/hvc_dcc.c > +++ b/drivers/tty/hvc/hvc_dcc.c > @@ -70,20 +70,29 @@ static const struct hv_ops hvc_dcc_get_put_ops = { > > static int __init hvc_dcc_console_init(void) > { > + int ret; > + > + /* This always runs on boot core */ Does this really "always run on the boot core"? I couldn't find anything suggesting that console_init is limited in that regard. Will
On 08/10/2015 04:48 AM, Will Deacon wrote: >> > >> > static int __init hvc_dcc_console_init(void) >> > { >> >+ int ret; >> >+ >> >+ /* This always runs on boot core */ > Does this really "always run on the boot core"? I couldn't find anything > suggesting that console_init is limited in that regard. So this is a left-over comment from some other code that actually cared what code this function runs on. I've removed the comment.
diff --git a/drivers/tty/hvc/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c index 809920d..47654ea 100644 --- a/drivers/tty/hvc/hvc_dcc.c +++ b/drivers/tty/hvc/hvc_dcc.c @@ -70,20 +70,29 @@ static const struct hv_ops hvc_dcc_get_put_ops = { static int __init hvc_dcc_console_init(void) { + int ret; + + /* This always runs on boot core */ if (!hvc_dcc_check()) return -ENODEV; - hvc_instantiate(0, 0, &hvc_dcc_get_put_ops); - return 0; + /* Returns -1 if error */ + ret = hvc_instantiate(0, 0, &hvc_dcc_get_put_ops); + + return ret < 0 ? -ENODEV : 0; } console_initcall(hvc_dcc_console_init); static int __init hvc_dcc_init(void) { + struct hvc_struct *p; + + /* This can run on any core */ if (!hvc_dcc_check()) return -ENODEV; - hvc_alloc(0, 0, &hvc_dcc_get_put_ops, 128); - return 0; + p = hvc_alloc(0, 0, &hvc_dcc_get_put_ops, 128); + + return PTR_ERR_OR_ZERO(p); } device_initcall(hvc_dcc_init);
hvc_instantiate() and hvc_alloc() return errors if they fail, so don't ignore them. Signed-off-by: Timur Tabi <timur@codeaurora.org> --- drivers/tty/hvc/hvc_dcc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)