From 22951a7fb3f61d3576e853f04f29e4afad31a2fc Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Wed, 23 Mar 2011 10:48:32 +0100 Subject: [PATCH] --- yaml --- r: 248651 b: refs/heads/master c: d55435037539837a741d54690427d37f96ed87fa h: refs/heads/master i: 248649: e1bf4dd1b7843306c3baaa0942cfbcd3c5e83be4 248647: 79f33cc5789ec83feb00b3ca2666cc0025817254 v: v3 --- [refs] | 2 +- trunk/drivers/tty/tty_io.c | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index bcd140f8d029..575faccb0466 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d65c57f4ece4c31380eef9975a04840df7b260cc +refs/heads/master: d55435037539837a741d54690427d37f96ed87fa diff --git a/trunk/drivers/tty/tty_io.c b/trunk/drivers/tty/tty_io.c index 188632e4734d..026bf2f6f5f2 100644 --- a/trunk/drivers/tty/tty_io.c +++ b/trunk/drivers/tty/tty_io.c @@ -1391,16 +1391,15 @@ struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx, return ERR_PTR(-ENODEV); tty = alloc_tty_struct(); - if (!tty) - goto fail_no_mem; + if (!tty) { + retval = -ENOMEM; + goto err_module_put; + } initialize_tty_struct(tty, driver, idx); retval = tty_driver_install_tty(driver, tty); - if (retval < 0) { - free_tty_struct(tty); - module_put(driver->owner); - return ERR_PTR(retval); - } + if (retval < 0) + goto err_free_tty; /* * Structures all installed ... call the ldisc open routines. @@ -1409,15 +1408,17 @@ struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx, */ retval = tty_ldisc_setup(tty, tty->link); if (retval) - goto release_mem_out; + goto err_release_tty; return tty; -fail_no_mem: +err_free_tty: + free_tty_struct(tty); +err_module_put: module_put(driver->owner); - return ERR_PTR(-ENOMEM); + return ERR_PTR(retval); /* call the tty release_tty routine to clean out this slot */ -release_mem_out: +err_release_tty: if (printk_ratelimit()) printk(KERN_INFO "tty_init_dev: ldisc open failed, " "clearing slot %d\n", idx);