staging: dgap: move tty_port_init() for serial_ports.
authorDaeseok Youn <daeseok.youn@gmail.com>
Mon, 26 May 2014 10:24:47 +0000 (19:24 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 May 2014 17:35:25 +0000 (10:35 -0700)
If printer_ports which is allocated after serial_ports is failed
to allocate, tty_port_init for serial_ports doesn't need anymore.
So move this after allocating memory for printer_ports.

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/dgap/dgap.c

index 06abb20474431c71a24c75de041cd38624067aa1..65d651ed711752233b9a13240f8b330df35186b7 100644 (file)
@@ -4142,16 +4142,16 @@ static int dgap_tty_register_ports(struct board_t *brd)
                                        GFP_KERNEL);
        if (brd->serial_ports == NULL)
                return -ENOMEM;
-       for (i = 0; i < brd->nasync; i++)
-               tty_port_init(&brd->serial_ports[i]);
 
        brd->printer_ports = kcalloc(brd->nasync, sizeof(*brd->printer_ports),
                                        GFP_KERNEL);
        if (brd->printer_ports == NULL)
                return -ENOMEM;
 
-       for (i = 0; i < brd->nasync; i++)
+       for (i = 0; i < brd->nasync; i++) {
+               tty_port_init(&brd->serial_ports[i]);
                tty_port_init(&brd->printer_ports[i]);
+       }
 
        ch = brd->channels[0];
        for (i = 0; i < brd->nasync; i++, ch = brd->channels[i]) {