public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Gujulan Elango, Hari Prasath (H.)" <hgujulan@visteon.com>
To: Joe Perches <joe@perches.com>
Cc: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"christian.gromm@microchip.com" <christian.gromm@microchip.com>,
	"andrey.shvetsov@k2l.de" <andrey.shvetsov@k2l.de>,
	"adrianremonda@gmail.com" <adrianremonda@gmail.com>,
	"sudipm.mukherjee@gmail.com" <sudipm.mukherjee@gmail.com>,
	"devel@driverdev.osuosl.org" <devel@driverdev.osuosl.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] staging: most: replace multiple if..else with table lookup
Date: Wed, 30 Dec 2015 10:44:45 +0000	[thread overview]
Message-ID: <20151230104536.GA21902@IND12F0122> (raw)
In-Reply-To: <1450973186.3554.13.camel@perches.com>

On Thu, Dec 24, 2015 at 08:06:26AM -0800, Joe Perches wrote:
> On Thu, 2015-12-24 at 10:49 +0000, Gujulan Elango, Hari Prasath (H.) wrote:
> > From: Hari Prasath Gujulan Elango <hgujulan@visteon.com>
> > 
> > Replace multiple if..else if..statements with simple table lookup in two
> > functions.
> > 
> > Signed-off-by: Hari Prasath Gujulan Elango <hgujulan@visteon.com>
> > ---
> >  drivers/staging/most/mostcore/core.c | 39 ++++++++++++++++++++----------------
> >  1 file changed, 22 insertions(+), 17 deletions(-)
> > 
> > diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c
> > index ed1ed25..7b4636b 100644
> > --- a/drivers/staging/most/mostcore/core.c
> > +++ b/drivers/staging/most/mostcore/core.c
> > @@ -82,6 +82,14 @@ struct most_inst_obj {
> >  	struct list_head list;
> >  };
> >  
> > +static const struct {
> > +	int most_ch_data_type;
> > +	char *name;
> > +} ch_data_type[] = { { MOST_CH_CONTROL, "control\n" },
> > +	{ MOST_CH_ASYNC, "async\n" },
> > +	{ MOST_CH_SYNC, "sync\n" },
> > +	{ MOST_CH_ISOC_AVP, "isoc_avp\n"} };
> > +
> >  #define to_inst_obj(d) container_of(d, struct most_inst_obj, kobj)
> >  
> >  /**
> > @@ -414,14 +422,12 @@ static ssize_t show_set_datatype(struct most_c_obj *c,
> >  				 struct most_c_attr *attr,
> >  				 char *buf)
> >  {
> > -	if (c->cfg.data_type & MOST_CH_CONTROL)
> > -		return snprintf(buf, PAGE_SIZE, "control\n");
> > -	else if (c->cfg.data_type & MOST_CH_ASYNC)
> > -		return snprintf(buf, PAGE_SIZE, "async\n");
> > -	else if (c->cfg.data_type & MOST_CH_SYNC)
> > -		return snprintf(buf, PAGE_SIZE, "sync\n");
> > -	else if (c->cfg.data_type & MOST_CH_ISOC_AVP)
> > -		return snprintf(buf, PAGE_SIZE, "isoc_avp\n");
> > +	int i;
> > +
> > +	for (i = 0; i < ARRAY_SIZE(ch_data_type); i++) {
> > +		if (c->cfg.data_type & ch_data_type[i].most_ch_data_type)
> > +			return snprintf(buf, PAGE_SIZE, ch_data_type[i].name);
> > +	}
> >  	return snprintf(buf, PAGE_SIZE, "unconfigured\n");
> >  }
> >  
> > @@ -430,15 +436,14 @@ static ssize_t store_set_datatype(struct most_c_obj *c,
> >  				  const char *buf,
> >  				  size_t count)
> >  {
> > -	if (!strcmp(buf, "control\n")) {
> > -		c->cfg.data_type = MOST_CH_CONTROL;
> > -	} else if (!strcmp(buf, "async\n")) {
> > -		c->cfg.data_type = MOST_CH_ASYNC;
> > -	} else if (!strcmp(buf, "sync\n")) {
> > -		c->cfg.data_type = MOST_CH_SYNC;
> > -	} else if (!strcmp(buf, "isoc_avp\n")) {
> > -		c->cfg.data_type = MOST_CH_ISOC_AVP;
> > -	} else {
> > +	int i;
> > +
> > +	for (i = 0; i < ARRAY_SIZE(ch_data_type); i++) {
> > +		if (!strcmp(buf, ch_data_type[i].name))
> > +			c->cfg.data_type = ch_data_type[i].most_ch_data_type;
> 
> Missing braces and break;
> 
> > +	}
> > +
> > +	if (i == ARRAY_SIZE(ch_data_type)) {
> >  		pr_info("WARN: invalid attribute settings\n");
> >  		return -EINVAL;
> >  	}
> 
> This seems like a lot of code for a simple test.
> 
Hello Joe,
I have sent a v2 for this patch with corrections made.

Regards,
Hari Prasath

      reply	other threads:[~2015-12-30 10:45 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-24 10:49 [PATCH] staging: most: replace multiple if..else with table lookup Gujulan Elango, Hari Prasath (H.)
2015-12-24 16:06 ` Joe Perches
2015-12-30 10:44   ` Gujulan Elango, Hari Prasath (H.) [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151230104536.GA21902@IND12F0122 \
    --to=hgujulan@visteon.com \
    --cc=adrianremonda@gmail.com \
    --cc=andrey.shvetsov@k2l.de \
    --cc=christian.gromm@microchip.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sudipm.mukherjee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox