[dpdk-dev,v3,36/40] rte_ethdev.h: explicit cast for return type
Checks
Commit Message
/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:3860:10:
warning: conversion to 'int' from 'uint32_t' {aka 'unsigned int'}
may change the sign of the result [-Wsign-conversion]
return (*dev->dev_ops->rx_queue_count)(dev, queue_id);
Signed-off-by: Andy Green <andy@warmcat.com>
---
lib/librte_ethdev/rte_ethdev.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Thu, 10 May 2018 10:49:20 +0800
Andy Green <andy@warmcat.com> wrote:
> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:3860:10:
> warning: conversion to 'int' from 'uint32_t' {aka 'unsigned int'}
> may change the sign of the result [-Wsign-conversion]
> return (*dev->dev_ops->rx_queue_count)(dev, queue_id);
>
> Signed-off-by: Andy Green <andy@warmcat.com>
> ---
> lib/librte_ethdev/rte_ethdev.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 2487e1d2d..c84dc44b8 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -3857,7 +3857,7 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id)
> if (queue_id >= dev->data->nb_rx_queues)
> return -EINVAL;
>
> - return (*dev->dev_ops->rx_queue_count)(dev, queue_id);
> + return (int)(*dev->dev_ops->rx_queue_count)(dev, queue_id);
> }
>
> /**
>
Why not change rx_queue_count to int to allow drivers to return an error?
On 05/11/2018 03:18 AM, Stephen Hemminger wrote:
> On Thu, 10 May 2018 10:49:20 +0800
> Andy Green <andy@warmcat.com> wrote:
>
>> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:3860:10:
>> warning: conversion to 'int' from 'uint32_t' {aka 'unsigned int'}
>> may change the sign of the result [-Wsign-conversion]
>> return (*dev->dev_ops->rx_queue_count)(dev, queue_id);
>>
>> Signed-off-by: Andy Green <andy@warmcat.com>
>> ---
>> lib/librte_ethdev/rte_ethdev.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
>> index 2487e1d2d..c84dc44b8 100644
>> --- a/lib/librte_ethdev/rte_ethdev.h
>> +++ b/lib/librte_ethdev/rte_ethdev.h
>> @@ -3857,7 +3857,7 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id)
>> if (queue_id >= dev->data->nb_rx_queues)
>> return -EINVAL;
>>
>> - return (*dev->dev_ops->rx_queue_count)(dev, queue_id);
>> + return (int)(*dev->dev_ops->rx_queue_count)(dev, queue_id);
>> }
>>
>> /**
>>
>
> Why not change rx_queue_count to int to allow drivers to return an error?
OK. I have done it and will push it later. I left the few related apis
in ./lib/ like rte_vhost_rx_queue_count() alone, they still return a
uint32_t.
Naturally, I want to call that patch something like "eth_dev_ops: change
rx_queue_count to return an int"...
-Andy
@@ -3857,7 +3857,7 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id)
if (queue_id >= dev->data->nb_rx_queues)
return -EINVAL;
- return (*dev->dev_ops->rx_queue_count)(dev, queue_id);
+ return (int)(*dev->dev_ops->rx_queue_count)(dev, queue_id);
}
/**