[dpdk-dev] [PATCH] net/cxgbe: fix colliding function names

Rahul Lakkireddy rahul.lakkireddy at chelsio.com
Fri Apr 19 12:04:42 CEST 2019


On Friday, April 04/19/19, 2019 at 05:07:02 +0530, Stephen Hemminger wrote:
> This driver defines lots of functions (like init_rss) which are intended
> to only be used in this device. But when doing static linking these
> global functions cause link failures when similar function name is
> used in application.
> 
> This patch prefixes all functions defined in cxgbe.h with cxgbe_
> to avoid these kind of conflicts.
> 

Agreed. Thanks for fixing it up.

> Fixes: bfcb257d3014 ("net/cxgbe: enable RSS for VF")
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
>  drivers/net/cxgbe/cxgbe.h        | 27 +++++++++++++------------
>  drivers/net/cxgbe/cxgbe_ethdev.c | 15 +++++++-------
>  drivers/net/cxgbe/cxgbe_main.c   | 34 ++++++++++++++++----------------
>  drivers/net/cxgbe/cxgbevf_main.c | 10 +++++-----
>  4 files changed, 44 insertions(+), 42 deletions(-)
> 
> diff --git a/drivers/net/cxgbe/cxgbe.h b/drivers/net/cxgbe/cxgbe.h
> index 5a7490f914c8..951b3ed3e9b6 100644
> --- a/drivers/net/cxgbe/cxgbe.h
> +++ b/drivers/net/cxgbe/cxgbe.h
> @@ -52,7 +52,7 @@
>  #define CXGBE_DEVARG_KEEP_OVLAN "keep_ovlan"
>  #define CXGBE_DEVARG_FORCE_LINK_UP "force_link_up"
>  
> -bool force_linkup(struct adapter *adap);
> +bool cxgbe_force_linkup(struct adapter *adap);
>  int cxgbe_probe(struct adapter *adapter);
>  int cxgbevf_probe(struct adapter *adapter);
>  void cxgbe_get_speed_caps(struct port_info *pi, u32 *speed_caps);
> @@ -65,19 +65,20 @@ void cxgbevf_stats_get(struct port_info *pi, struct port_stats *stats);
>  void cxgbe_stats_reset(struct port_info *pi);
>  int cxgbe_poll_for_completion(struct sge_rspq *q, unsigned int us,
>  			      unsigned int cnt, struct t4_completion *c);
> -int link_start(struct port_info *pi);
> -void init_rspq(struct adapter *adap, struct sge_rspq *q, unsigned int us,
> -	       unsigned int cnt, unsigned int size, unsigned int iqe_size);
> -int setup_sge_fwevtq(struct adapter *adapter);
> -int setup_sge_ctrl_txq(struct adapter *adapter);
> -void cfg_queues(struct rte_eth_dev *eth_dev);
> -int cfg_queue_count(struct rte_eth_dev *eth_dev);
> -int init_rss(struct adapter *adap);
> -int setup_rss(struct port_info *pi);
> +int cxgbe_link_start(struct port_info *pi);
> +void cxgbe_init_rspq(struct adapter *adap, struct sge_rspq *q, unsigned int us,
> +		     unsigned int cnt, unsigned int size,
> +		     unsigned int iqe_size);
 
I see following build error.

cxgbe_main.c:468:13: error: no previous prototype for ‘init_rspq’
[-Werror=missing-prototypes]
 inline void init_rspq(struct adapter *adap, struct sge_rspq *q,
              ^

Since init_rspq() is not used outside cxgbe_main.c, let's make
it static.

Thanks,
Rahul


More information about the dev mailing list