This commit slightly simplifies the sgnc_start() function by rearranging it. As a result the indentation level is reduced. This is not the functional change. Signed-off-by: Konrad Zapalowicz <bergo.torino@xxxxxxxxx> --- drivers/staging/dgnc/dgnc_driver.c | 93 +++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index da7b226..66f2b2d 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -278,65 +278,63 @@ static int dgnc_start(void) int rc = 0; unsigned long flags; - if (dgnc_driver_start == FALSE) { + if (unlikely(dgnc_driver_start == TRUE)) + goto exit; + dgnc_driver_start = TRUE; - dgnc_driver_start = TRUE; + /* make sure that the globals are init'd before we do anything else */ + dgnc_init_globals(); - /* make sure that the globals are init'd before we do anything else */ - dgnc_init_globals(); - - dgnc_NumBoards = 0; - - APR(("For the tools package or updated drivers please visit http://www.digi.com\n")); + APR(("For the tools package or updated drivers please visit http://www.digi.com\n")); + /* + * Register our base character device into the kernel. + * This allows the download daemon to connect to the downld device + * before any of the boards are init'ed. + */ + if (!dgnc_Major_Control_Registered) { /* - * Register our base character device into the kernel. - * This allows the download daemon to connect to the downld device - * before any of the boards are init'ed. + * Register management/dpa devices */ - if (!dgnc_Major_Control_Registered) { - /* - * Register management/dpa devices - */ - rc = register_chrdev(0, "dgnc", &dgnc_BoardFops); - if (rc <= 0) { - APR(("Can't register dgnc driver device (%d)\n", rc)); - rc = -ENXIO; - return rc; - } - dgnc_Major = rc; - - dgnc_class = class_create(THIS_MODULE, "dgnc_mgmt"); - device_create(dgnc_class, NULL, - MKDEV(dgnc_Major, 0), - NULL, "dgnc_mgmt"); - dgnc_Major_Control_Registered = TRUE; + rc = register_chrdev(0, "dgnc", &dgnc_BoardFops); + if (rc <= 0) { + APR(("Can't register dgnc driver device (%d)\n", rc)); + rc = -ENXIO; + goto exit; } + dgnc_Major = rc; - /* - * Init any global tty stuff. - */ - rc = dgnc_tty_preinit(); + dgnc_class = class_create(THIS_MODULE, "dgnc_mgmt"); + device_create(dgnc_class, NULL, + MKDEV(dgnc_Major, 0), + NULL, "dgnc_mgmt"); + dgnc_Major_Control_Registered = TRUE; + } - if (rc < 0) { - APR(("tty preinit - not enough memory (%d)\n", rc)); - return rc; - } + /* + * Init any global tty stuff. + */ + rc = dgnc_tty_preinit(); - /* Start the poller */ - DGNC_LOCK(dgnc_poll_lock, flags); - init_timer(&dgnc_poll_timer); - dgnc_poll_timer.function = dgnc_poll_handler; - dgnc_poll_timer.data = 0; - dgnc_poll_time = jiffies + dgnc_jiffies_from_ms(dgnc_poll_tick); - dgnc_poll_timer.expires = dgnc_poll_time; - DGNC_UNLOCK(dgnc_poll_lock, flags); + if (rc < 0) { + APR(("tty preinit - not enough memory (%d)\n", rc)); + goto exit; + } - add_timer(&dgnc_poll_timer); + /* Start the poller */ + DGNC_LOCK(dgnc_poll_lock, flags); + init_timer(&dgnc_poll_timer); + dgnc_poll_timer.function = dgnc_poll_handler; + dgnc_poll_timer.data = 0; + dgnc_poll_time = jiffies + dgnc_jiffies_from_ms(dgnc_poll_tick); + dgnc_poll_timer.expires = dgnc_poll_time; + DGNC_UNLOCK(dgnc_poll_lock, flags); - dgnc_driver_state = DRIVER_READY; - } + add_timer(&dgnc_poll_timer); + + dgnc_driver_state = DRIVER_READY; +exit: return rc; } @@ -814,6 +812,7 @@ static void dgnc_init_globals(void) dgnc_rawreadok = rawreadok; dgnc_trcbuf_size = trcbuf_size; dgnc_debug = debug; + dgnc_NumBoards = 0; for (i = 0; i < MAXBOARDS; i++) dgnc_Board[i] = NULL; -- 1.8.1.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel