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

--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux