[Intel-wired-lan] [PATCH v2 1/2] net: ethernet: i40e: fix build error

Wang, Dongsheng dongsheng.wang at hxt-semitech.com
Thu Sep 6 03:36:08 UTC 2018


On 2018/9/6 0:52, Keller, Jacob E wrote:





-----Original Message-----
From: Wang Dongsheng [mailto:dongsheng.wang at hxt-semitech.com]
Sent: Tuesday, September 04, 2018 7:27 PM
To: Kirsher, Jeffrey T <jeffrey.t.kirsher at intel.com><mailto:jeffrey.t.kirsher at intel.com>;
sergei.shtylyov at cogentembedded.com<mailto:sergei.shtylyov at cogentembedded.com>
Cc: Keller, Jacob E <jacob.e.keller at intel.com><mailto:jacob.e.keller at intel.com>; davem at davemloft.net<mailto:davem at davemloft.net>; intel-
wired-lan at lists.osuosl.org<mailto:wired-lan at lists.osuosl.org>; netdev at vger.kernel.org<mailto:netdev at vger.kernel.org>; linux-
kernel at vger.kernel.org<mailto:kernel at vger.kernel.org>; Wang Dongsheng <dongsheng.wang at hxt-
semitech.com><mailto:dongsheng.wang at hxt-semitech.com>
Subject: [PATCH v2 1/2] net: ethernet: i40e: fix build error

Remove "inline" from __i40e_add_stat_strings.

In file included from
drivers/net/ethernet/intel/i40e/i40e_ethtool.c:9:0:
drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function
‘__i40e_add_stat_strings’:
drivers/net/ethernet/intel/i40e/i40e_ethtool_stats.h:193:20: error:
function ‘__i40e_add_stat_strings’ can never be inlined because it uses
variable argument lists
 static inline void __i40e_add_stat_strings(u8 **p, const struct
                                            i40e_stats stats[],

Signed-off-by: Wang Dongsheng <dongsheng.wang at hxt-semitech.com><mailto:dongsheng.wang at hxt-semitech.com>



Thanks for the fix.

A bit off topic, but these two files in the i40e and i40evf share some code. Is there a good mechanism for sharing these between the two drivers that would allow the modules to be independent? That would be ideal.


Yes,  but not only i40e. igb/vf, ixgb/vf also share same code. If we change any of them, means we need to broken the whole layout of driver/net/ethernet/intel/ . Obviously we can't put header files to $src/include/net. :|

Cheers,
Dongsheng



Acked-by: Jacob Keller <jacob.e.keller at intel.com><mailto:jacob.e.keller at intel.com>



---
v2:
1. Move function.
2. Include a new patch at [2/2].

---
 .../net/ethernet/intel/i40e/i40e_ethtool.c    | 24 ++++++++++++++++++
 .../ethernet/intel/i40e/i40e_ethtool_stats.h  | 25 ++-----------------
 2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index d7d3974beca2..f4a70d67a80a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -1821,6 +1821,30 @@ static void i40e_get_ethtool_stats(struct net_device
*netdev,
                  "ethtool stats count mismatch!");
 }

+/**
+ * __i40e_add_stat_strings - copy stat strings into ethtool buffer
+ * @p: ethtool supplied buffer
+ * @stats: stat definitions array
+ * @size: size of the stats array
+ *
+ * Format and copy the strings described by stats into the buffer pointed at
+ * by p.
+ **/
+void __i40e_add_stat_strings(u8 **p, const struct i40e_stats stats[],
+                            const unsigned int size, ...)
+{
+       unsigned int i;
+
+       for (i = 0; i < size; i++) {
+               va_list args;
+
+               va_start(args, size);
+               vsnprintf(*p, ETH_GSTRING_LEN, stats[i].stat_string, args);
+               *p += ETH_GSTRING_LEN;
+               va_end(args);
+       }
+}
+
 /**
  * i40e_get_stat_strings - copy stat strings into supplied buffer
  * @netdev: the netdev to collect strings for
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool_stats.h
b/drivers/net/ethernet/intel/i40e/i40e_ethtool_stats.h
index bba1cb0b658f..0874c352136a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool_stats.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool_stats.h
@@ -181,29 +181,8 @@ i40e_add_queue_stats(u64 **data, struct i40e_ring
*ring)
        *data += size;
 }

-/**
- * __i40e_add_stat_strings - copy stat strings into ethtool buffer
- * @p: ethtool supplied buffer
- * @stats: stat definitions array
- * @size: size of the stats array
- *
- * Format and copy the strings described by stats into the buffer pointed at
- * by p.
- **/
-static inline void __i40e_add_stat_strings(u8 **p, const struct i40e_stats stats[],
-                                   const unsigned int size, ...)
-{
-       unsigned int i;
-
-       for (i = 0; i < size; i++) {
-               va_list args;
-
-               va_start(args, size);
-               vsnprintf(*p, ETH_GSTRING_LEN, stats[i].stat_string, args);
-               *p += ETH_GSTRING_LEN;
-               va_end(args);
-       }
-}
+void __i40e_add_stat_strings(u8 **p, const struct i40e_stats stats[],
+                            const unsigned int size, ...);

 /**
  * 40e_add_stat_strings - copy stat strings into ethtool buffer
--
2.18.0






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20180906/2bfd2308/attachment-0001.html>


More information about the Intel-wired-lan mailing list