Hi, Ferruh > -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@intel.com> > Sent: Monday, September 30, 2019 13:35 > To: Slava Ovsiienko <viachesl...@mellanox.com>; dev@dpdk.org > Cc: Matan Azrad <ma...@mellanox.com>; Raslan Darawsheh > <rasl...@mellanox.com> > Subject: Re: [dpdk-dev] [PATCH 04/12] net/mlx5: add VF LAG mode bonding > device recognition > > On 9/25/2019 8:53 AM, Viacheslav Ovsiienko wrote: > > The Mellanox NICs starting from ConnectX-5 support LAG over NIC ports > > internally, implemented by the NIC firmware and hardware. > > The multiport NIC presents multiple physical PCI functions (PF), with > > SR-IOV multiple virtual PCI functions (VFs) might be presented. > > With switchdev mode the VF representors are engaged and PFs and their > > VFs are connected by internal E-Switch feature. Each PF and related > > VFs have dedicated E-Switch and belong to dedicated switch domain. > > > > If NIC ports are combined to support NIC the kernel drivers introduce > > the single unified Infiniband multiport devices, and all only one > > unified E-Switch with single switch domain combines master PF all all > > VFs. No extra DPDK bonding device is needed. > > > > Signed-off-by: Viacheslav Ovsiienko <viachesl...@mellanox.com> > > <...> > > > + > > + /* Use safe format to check maximal buffer length. */ #pragma GCC > > +diagnostic ignored "-Wformat-nonliteral" > > + while (fscanf(file, format, ifname) == 1) { #pragma GCC diagnostic > > +error "-Wformat-nonliteral" > > + char tmp_str[IF_NAMESIZE + 32]; > > + struct rte_pci_addr pci_addr; > > + struct mlx5_switch_info info; > > > Hi Slava, > > The ICC is failing because of the pragma [1], > - Can you please explain why it is needed, can we escape from it?
GCC generates error/warning, depending on the settings "-Werror=format-nonliteral", for the fscanf(file, format, ...) call, if the "format" parameter is not literal. > - If we can't escape can you please add compiler checks around it? [2] Sure, I will. And I'm sorry for missing this in the patch. BTW , there are multiple usages of "#ifdef __INTEL_COMPILER" around the GCC pragmas. I think RTE_TOOLCHAIN_GCC is more relevant for the in case being discussed. > - And should we enable it as 'error' by default, what about following [3]? Yes, it would be better, thanks for the nice clue. WBR, Slava > > [1] > .../drivers/net/mlx5/mlx5.c(2301): error #2282: unrecognized GCC pragma > #pragma GCC diagnostic ignored "-Wformat-nonliteral" > ^ > > [2] > #ifdef __GNUC__ > #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 1) #pragma > GCC diagnostic ignored "-Wformat-nonliteral" > #endif > #endif > > > [3] > #pragma GCC diagnostic push > #pragma GCC diagnostic ignored "-Wformat-nonliteral" > <...> > #pragma GCC diagnostic pop