lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 7 Sep 2018 18:33:08 +0300 From: Sergei Shtylyov <sergei.shtylyov@...entembedded.com> To: Wang Dongsheng <dongsheng.wang@...-semitech.com>, jeffrey.t.kirsher@...el.com Cc: jacob.e.keller@...el.com, davem@...emloft.net, intel-wired-lan@...ts.osuosl.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH v3 2/2] net: ethernet: i40evf: fix underlying build error On 09/07/2018 02:19 PM, Wang Dongsheng wrote: > Can't have non-inline function in a header file. > There is a risk of "Multiple definition" from cross-including. > > Tested on: x86_64, make ARCH=i386 > > Modules section .text: > i40e: 00019380 <__i40e_add_stat_strings>: > i40evf: 00006b00 <__i40e_add_stat_strings>: > > Buildin section .text: > i40e: c351ca60 <__i40e_add_stat_strings>: > i40evf: c354f2c0 <__i40e_add_stat_strings>: > > Signed-off-by: Wang Dongsheng <dongsheng.wang@...-semitech.com> > --- > V3: add static > --- > .../intel/i40evf/i40e_ethtool_stats.h | 23 +----------------- > .../ethernet/intel/i40evf/i40evf_ethtool.c | 24 +++++++++++++++++++ > 2 files changed, 25 insertions(+), 22 deletions(-) > > diff --git a/drivers/net/ethernet/intel/i40evf/i40e_ethtool_stats.h b/drivers/net/ethernet/intel/i40evf/i40e_ethtool_stats.h > index 60b595dd8c39..62ab67a77753 100644 > --- a/drivers/net/ethernet/intel/i40evf/i40e_ethtool_stats.h > +++ b/drivers/net/ethernet/intel/i40evf/i40e_ethtool_stats.h > @@ -181,29 +181,8 @@ i40evf_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 void __i40e_add_stat_strings(u8 **p, const struct i40e_stats stats[], There's no point to keeping *static* function in the header file (unless it's also *inline*). > - 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); > - } > -} > + const unsigned int size, ...); > > /** > * 40e_add_stat_strings - copy stat strings into ethtool buffer [...] MBR, Sergei
Powered by blists - more mailing lists