From cf939c28fe345de40a8e23a12cbe0f82a8666613 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Mon, 4 Jun 2012 13:35:35 +0200 Subject: [PATCH] --- yaml --- r: 325591 b: refs/heads/master c: 9bb8a3d4109f3b267cca9f6f071e2298eed4f593 h: refs/heads/master i: 325589: d2bdfc0ab8b3bde5c4147afb71f73010ac953443 325587: 250639857d5dcfcb9416cb47513ab9710f0ed439 325583: 7a2e34ac491b51087c0d4610abd9cb777f8a928b v: v3 --- [refs] | 2 +- trunk/drivers/tty/tty_io.c | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index bca53ff57874..15b556ecc1d4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ca4ff100d36b2c1da93a0a121177f73eea154471 +refs/heads/master: 9bb8a3d4109f3b267cca9f6f071e2298eed4f593 diff --git a/trunk/drivers/tty/tty_io.c b/trunk/drivers/tty/tty_io.c index b425c79675ad..d6e045b7079a 100644 --- a/trunk/drivers/tty/tty_io.c +++ b/trunk/drivers/tty/tty_io.c @@ -3144,10 +3144,8 @@ int tty_register_driver(struct tty_driver *driver) dev = MKDEV(driver->major, driver->minor_start); error = register_chrdev_region(dev, driver->num, driver->name); } - if (error < 0) { - kfree(p); - return error; - } + if (error < 0) + goto err_free_p; if (p) { driver->ttys = (struct tty_struct **)p; @@ -3160,13 +3158,8 @@ int tty_register_driver(struct tty_driver *driver) cdev_init(&driver->cdev, &tty_fops); driver->cdev.owner = driver->owner; error = cdev_add(&driver->cdev, dev, driver->num); - if (error) { - unregister_chrdev_region(dev, driver->num); - driver->ttys = NULL; - driver->termios = NULL; - kfree(p); - return error; - } + if (error) + goto err_unreg_char; mutex_lock(&tty_mutex); list_add(&driver->tty_drivers, &tty_drivers); @@ -3193,13 +3186,14 @@ int tty_register_driver(struct tty_driver *driver) list_del(&driver->tty_drivers); mutex_unlock(&tty_mutex); +err_unreg_char: unregister_chrdev_region(dev, driver->num); driver->ttys = NULL; driver->termios = NULL; +err_free_p: kfree(p); return error; } - EXPORT_SYMBOL(tty_register_driver); /*