[dpdk-dev] [PATCH v3 36/40] rte_ethdev.h: explicit cast for return type

Andy Green andy at warmcat.com
Fri May 11 01:48:17 CEST 2018



On 05/11/2018 03:18 AM, Stephen Hemminger wrote:
> On Thu, 10 May 2018 10:49:20 +0800
> Andy Green <andy at 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 at 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


More information about the dev mailing list