Re: [PATCH v2 03/21] Staging: gdm724x: use match_string() helper
Hi Greg, On 2018/5/31 19:44, Greg Kroah-Hartman wrote: > On Thu, May 31, 2018 at 07:11:08PM +0800, Yisheng Xie wrote: >> match_string() returns the index of an array for a matching string, >> which can be used instead of open coded variant. >> >> Cc: Greg Kroah-Hartman >> Cc: Quytelda Kahja >> Cc: de...@driverdev.osuosl.org >> Signed-off-by: Yisheng Xie >> --- >> v2: >> - const DRIVER_STRING instead - per Andy >> >> drivers/staging/gdm724x/gdm_tty.c | 18 +- >> 1 file changed, 5 insertions(+), 13 deletions(-) >> >> diff --git a/drivers/staging/gdm724x/gdm_tty.c >> b/drivers/staging/gdm724x/gdm_tty.c >> index 3cdebb8..397ecaa 100644 >> --- a/drivers/staging/gdm724x/gdm_tty.c >> +++ b/drivers/staging/gdm724x/gdm_tty.c >> @@ -43,7 +43,7 @@ >> static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR]; >> static DEFINE_MUTEX(gdm_table_lock); >> >> -static char *DRIVER_STRING[TTY_MAX_COUNT] = {"GCTATC", "GCTDM"}; >> +static const char *DRIVER_STRING[TTY_MAX_COUNT] = {"GCTATC", "GCTDM"}; >> static char *DEVICE_STRING[TTY_MAX_COUNT] = {"GCT-ATC", "GCT-DM"}; >> >> static void gdm_port_destruct(struct tty_port *port) >> @@ -65,22 +65,14 @@ static int gdm_tty_install(struct tty_driver *driver, >> struct tty_struct *tty) >> { >> struct gdm *gdm = NULL; >> int ret; >> -int i; >> -int j; >> - >> -j = GDM_TTY_MINOR; >> -for (i = 0; i < TTY_MAX_COUNT; i++) { >> -if (!strcmp(tty->driver->driver_name, DRIVER_STRING[i])) { >> -j = tty->index; >> -break; >> -} >> -} >> >> -if (j == GDM_TTY_MINOR) >> +ret = match_string(DRIVER_STRING, TTY_MAX_COUNT, >> + tty->driver->driver_name); >> +if (ret < 0 || tty->index == GDM_TTY_MINOR) >> return -ENODEV; > > Very odd rewrite here. Why call this function if you think the initial > parameters are not correct? Are you sure about your test for > tty->index? Hmm, actually, I thought it no need to test tty->index here, but I not so sure about that so I kept it, I will remove this check next version. > > This should be cleaned up more please. Sure! Thanks Yisheng > > thanks, > > greg k-h > > . >
Re: [PATCH v2 03/21] Staging: gdm724x: use match_string() helper
On Thu, May 31, 2018 at 07:11:08PM +0800, Yisheng Xie wrote: > match_string() returns the index of an array for a matching string, > which can be used instead of open coded variant. > > Cc: Greg Kroah-Hartman > Cc: Quytelda Kahja > Cc: de...@driverdev.osuosl.org > Signed-off-by: Yisheng Xie > --- > v2: > - const DRIVER_STRING instead - per Andy > > drivers/staging/gdm724x/gdm_tty.c | 18 +- > 1 file changed, 5 insertions(+), 13 deletions(-) > > diff --git a/drivers/staging/gdm724x/gdm_tty.c > b/drivers/staging/gdm724x/gdm_tty.c > index 3cdebb8..397ecaa 100644 > --- a/drivers/staging/gdm724x/gdm_tty.c > +++ b/drivers/staging/gdm724x/gdm_tty.c > @@ -43,7 +43,7 @@ > static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR]; > static DEFINE_MUTEX(gdm_table_lock); > > -static char *DRIVER_STRING[TTY_MAX_COUNT] = {"GCTATC", "GCTDM"}; > +static const char *DRIVER_STRING[TTY_MAX_COUNT] = {"GCTATC", "GCTDM"}; > static char *DEVICE_STRING[TTY_MAX_COUNT] = {"GCT-ATC", "GCT-DM"}; > > static void gdm_port_destruct(struct tty_port *port) > @@ -65,22 +65,14 @@ static int gdm_tty_install(struct tty_driver *driver, > struct tty_struct *tty) > { > struct gdm *gdm = NULL; > int ret; > - int i; > - int j; > - > - j = GDM_TTY_MINOR; > - for (i = 0; i < TTY_MAX_COUNT; i++) { > - if (!strcmp(tty->driver->driver_name, DRIVER_STRING[i])) { > - j = tty->index; > - break; > - } > - } > > - if (j == GDM_TTY_MINOR) > + ret = match_string(DRIVER_STRING, TTY_MAX_COUNT, > +tty->driver->driver_name); > + if (ret < 0 || tty->index == GDM_TTY_MINOR) > return -ENODEV; Very odd rewrite here. Why call this function if you think the initial parameters are not correct? Are you sure about your test for tty->index? This should be cleaned up more please. thanks, greg k-h
[PATCH v2 03/21] Staging: gdm724x: use match_string() helper
match_string() returns the index of an array for a matching string, which can be used instead of open coded variant. Cc: Greg Kroah-Hartman Cc: Quytelda Kahja Cc: de...@driverdev.osuosl.org Signed-off-by: Yisheng Xie --- v2: - const DRIVER_STRING instead - per Andy drivers/staging/gdm724x/gdm_tty.c | 18 +- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c index 3cdebb8..397ecaa 100644 --- a/drivers/staging/gdm724x/gdm_tty.c +++ b/drivers/staging/gdm724x/gdm_tty.c @@ -43,7 +43,7 @@ static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR]; static DEFINE_MUTEX(gdm_table_lock); -static char *DRIVER_STRING[TTY_MAX_COUNT] = {"GCTATC", "GCTDM"}; +static const char *DRIVER_STRING[TTY_MAX_COUNT] = {"GCTATC", "GCTDM"}; static char *DEVICE_STRING[TTY_MAX_COUNT] = {"GCT-ATC", "GCT-DM"}; static void gdm_port_destruct(struct tty_port *port) @@ -65,22 +65,14 @@ static int gdm_tty_install(struct tty_driver *driver, struct tty_struct *tty) { struct gdm *gdm = NULL; int ret; - int i; - int j; - - j = GDM_TTY_MINOR; - for (i = 0; i < TTY_MAX_COUNT; i++) { - if (!strcmp(tty->driver->driver_name, DRIVER_STRING[i])) { - j = tty->index; - break; - } - } - if (j == GDM_TTY_MINOR) + ret = match_string(DRIVER_STRING, TTY_MAX_COUNT, + tty->driver->driver_name); + if (ret < 0 || tty->index == GDM_TTY_MINOR) return -ENODEV; mutex_lock(&gdm_table_lock); - gdm = gdm_table[i][j]; + gdm = gdm_table[ret][tty->index]; if (!gdm) { mutex_unlock(&gdm_table_lock); return -ENODEV; -- 1.7.12.4