diff options
-rw-r--r-- | drivers/tty/pty.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c index f5119184259c..b25d6c4014a5 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c | |||
@@ -560,20 +560,19 @@ static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty) | |||
560 | return -ENOMEM; | 560 | return -ENOMEM; |
561 | if (!try_module_get(driver->other->owner)) { | 561 | if (!try_module_get(driver->other->owner)) { |
562 | /* This cannot in fact currently happen */ | 562 | /* This cannot in fact currently happen */ |
563 | free_tty_struct(o_tty); | 563 | goto err_free_tty; |
564 | return -ENOMEM; | ||
565 | } | 564 | } |
566 | initialize_tty_struct(o_tty, driver->other, idx); | 565 | initialize_tty_struct(o_tty, driver->other, idx); |
567 | 566 | ||
568 | tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL); | 567 | tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL); |
569 | if (tty->termios == NULL) | 568 | if (tty->termios == NULL) |
570 | goto free_mem_out; | 569 | goto err_free_mem; |
571 | *tty->termios = driver->init_termios; | 570 | *tty->termios = driver->init_termios; |
572 | tty->termios_locked = tty->termios + 1; | 571 | tty->termios_locked = tty->termios + 1; |
573 | 572 | ||
574 | o_tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL); | 573 | o_tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL); |
575 | if (o_tty->termios == NULL) | 574 | if (o_tty->termios == NULL) |
576 | goto free_mem_out; | 575 | goto err_free_mem; |
577 | *o_tty->termios = driver->other->init_termios; | 576 | *o_tty->termios = driver->other->init_termios; |
578 | o_tty->termios_locked = o_tty->termios + 1; | 577 | o_tty->termios_locked = o_tty->termios + 1; |
579 | 578 | ||
@@ -592,11 +591,12 @@ static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty) | |||
592 | tty->count++; | 591 | tty->count++; |
593 | pty_count++; | 592 | pty_count++; |
594 | return 0; | 593 | return 0; |
595 | free_mem_out: | 594 | err_free_mem: |
596 | kfree(o_tty->termios); | 595 | kfree(o_tty->termios); |
596 | kfree(tty->termios); | ||
597 | module_put(o_tty->driver->owner); | 597 | module_put(o_tty->driver->owner); |
598 | err_free_tty: | ||
598 | free_tty_struct(o_tty); | 599 | free_tty_struct(o_tty); |
599 | kfree(tty->termios); | ||
600 | return -ENOMEM; | 600 | return -ENOMEM; |
601 | } | 601 | } |
602 | 602 | ||