Re: [PATCH] staging: dgap: implement error handling in dgap_tty_register()

Dan Carpenter
2014-04-25T09:26:29Z

Mark, maybe you should add yourself to the MAINTAINERS entry for this
driver?

On Fri, Apr 25, 2014 at 04:04:59PM +0900, Daeseok Youn wrote:
> @@ -1263,7 +1277,8 @@ static int dgap_tty_register(struct board_t *brd)
> /* Register tty devices */
> rc = tty_register_driver(brd->SerialDriver);
> if (rc < 0)
> - return rc;
> + goto free_print_ttys;
> +
> brd->dgap_Major_Serial_Registered = TRUE;
> dgap_BoardsByMajor[brd->SerialDriver->major] = brd;
> brd->dgap_Serial_Major = brd->SerialDriver->major;
> @@ -1273,13 +1288,29 @@ static int dgap_tty_register(struct board_t *brd)
> /* Register Transparent Print devices */
> rc = tty_register_driver(brd->PrintDriver);
> if (rc < 0)
> - return rc;
> + goto unregister_serial_drv;
> +
> brd->dgap_Major_TransparentPrint_Registered = TRUE;
> dgap_BoardsByMajor[brd->PrintDriver->major] = brd;
> brd->dgap_TransparentPrint_Major = brd->PrintDriver->major;
> }
>
> return rc;
> +
> +unregister_serial_drv:
> + tty_unregister_driver(brd->SerialDriver);

We only register the ->SerialDriver if someone else hasn't registered it
first? So this should be:

if (we_were_the_ones_who_registered_the_serial_driver)
tty_unregister_driver(brd->SerialDriver);

I haven't followed looked at this. Who else is registering the serial
driver? You have looked at this, what do you think? Or Mark.

regards,
dan carpenter