[patch] staging: comedi: cleanup comedi_recognize()

Dan Carpenter dan.carpenter at oracle.com
Thu May 24 11:16:01 UTC 2012


On Thu, May 24, 2012 at 11:57:44AM +0100, Ian Abbott wrote:
> On 2012-05-24 11:28, Dan Carpenter wrote:
> >This function is more complicated than it needs to be because of the
> >consts.  It's not worth saving them because we drop the consts anyway
> >when we return (void *)name_ptr.
> >
> >Signed-off-by: Dan Carpenter<dan.carpenter at oracle.com>
> >
> >diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
> >index 1c3d638..a8f576d 100644
> >--- a/drivers/staging/comedi/drivers.c
> >+++ b/drivers/staging/comedi/drivers.c
> >@@ -304,14 +304,13 @@ static int postconfig(struct comedi_device *dev)
> >   * that register their supported board names */
> >  static void *comedi_recognize(struct comedi_driver *driv, const char *name)
> >  {
> >-	unsigned i;
> >-	const char *const *name_ptr = driv->board_name;
> >+	char **name_ptr = (char **)driv->board_name;
> >+	int i;
> >+
> >  	for (i = 0; i<  driv->num_names; i++) {
> >  		if (strcmp(*name_ptr, name) == 0)
> >-			return (void *)name_ptr;
> >-		name_ptr =
> >-		    (const char *const *)((const char *)name_ptr +
> >-					  driv->offset);
> >+			return name_ptr;
> >+		name_ptr = (char **)((void *)name_ptr + driv->offset);
> >  	}
> >
> >  	return NULL;
> 
> You could simplify it further by keeping one of the consts:
> 
> static void *comedi_recognize(struct comedi_driver *driv, const char *name)
> {
> 	unsigned i;
> 	const char **name_ptr = driv->board_name;
> 	for (i = 0; i < driv->num_names; i++) {
> 		if (strcmp(*name_ptr, name) == 0)
> 			return name_ptr;
> 		name_ptr = (void *)name_ptr + driv->offset;
> 	}
> 	return NULL;
> }

Sure.  I'll resend.

regards,
dan carpenter




More information about the devel mailing list