Re: [patch] staging: comedi: cleanup comedi_recognize()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Am 24.05.2012 12:57, schrieb Ian Abbott:
> 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@xxxxxxxxxx>
>>
>> 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;
> }
> 

Hi all,
the patch is fine with me but i have a few basic questions:

Why the (void  *) at all ? it returns a name what is a const char *.

A look at the structure also shows that this is a linked list, why
using offset instead of driv->next ?

re,
 wh

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux