[dpdk-dev] [PATCH] igb_uio: use macros for array size calculation
Ferruh Yigit
ferruh.yigit at intel.com
Thu Mar 3 19:16:43 CET 2016
On 3/3/2016 5:45 PM, Ananyev, Konstantin wrote:
>
>
>> -----Original Message-----
>> From: Yigit, Ferruh
>> Sent: Thursday, March 03, 2016 5:35 PM
>> To: Ananyev, Konstantin; dev at dpdk.org
>> Subject: Re: [dpdk-dev] [PATCH] igb_uio: use macros for array size calculation
>>
>> On 3/3/2016 5:25 PM, Ananyev, Konstantin wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ferruh Yigit
>>>> Sent: Thursday, March 03, 2016 5:08 PM
>>>> To: dev at dpdk.org
>>>> Subject: [dpdk-dev] [PATCH] igb_uio: use macros for array size calculation
>>>>
>>>> Minor code cleanup.
>>>> Remove array size calculations and remove unnecessary assignment.
>>>>
>>>> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
>>>> ---
>>>> lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 8 ++++----
>>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>>> index 3374e44..563c57b 100644
>>>> --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>>> +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>>> @@ -58,7 +58,7 @@ struct rte_uio_pci_dev {
>>>> enum rte_intr_mode mode;
>>>> };
>>>>
>>>> -static char *intr_mode = NULL;
>>>> +static char *intr_mode;
>>>> static enum rte_intr_mode igbuio_intr_mode_preferred = RTE_INTR_MODE_MSIX;
>>>>
>>>> /* sriov sysfs */
>>>> @@ -332,7 +332,7 @@ igbuio_pci_setup_iomem(struct pci_dev *dev, struct uio_info *info,
>>>> unsigned long addr, len;
>>>> void *internal_addr;
>>>>
>>>> - if (sizeof(info->mem) / sizeof(info->mem[0]) <= n)
>>>> + if (n >= MAX_UIO_MAPS)
>>>
>>> Why using hardcoded value is better than sizeof()?
>>> As I can see below there is a macro ARRAY_SIZE, why not to use it here then?
>>
>> Both are valid, but in uio (uio_driver.h) "mem" array defined as:
>> struct uio_mem mem[MAX_UIO_MAPS];
>
> Yep, so if both are valid, why to change it a the first place? :)
>
>>
>> So we already know the size of the array, and it is exposed to us, why
>> need to calculate. Is there any benefit of calculating it?
>
> if in future definition of the mem[] would change to let say:
> struct uio_mem mem[X]
> your code would still be valid, and no need to update it.
Since it is the part of uio API, I expect this will remain same,
otherwise igb_uio.c will already have problems because there is other
piece of code that already rely on this information.
But I don't have a strong opinion on one or other, I will update this to
use ARRAY_SIZE()
Thanks,
ferruh
More information about the dev
mailing list