Hi Parav,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/Parav-Pandit/netdevsim-port-add-delete-support/20210206-210153
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 
6626a0266566c5aea16178c5e6cd7fc4db3f2f56
config: x86_64-randconfig-a004-20210206 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 
c9439ca36342fb6013187d0a69aef92736951476)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # 
https://github.com/0day-ci/linux/commit/980b8cbe1c29602278397d53732cc258b1d62416
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Parav-Pandit/netdevsim-port-add-delete-support/20210206-210153
        git checkout 980b8cbe1c29602278397d53732cc258b1d62416
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   In file included from drivers/net/netdevsim/port_function.c:7:
   drivers/net/netdevsim/netdevsim.h:318:23: warning: declaration of 'struct 
devlink_port_new_attrs' will not be visible outside of this function 
[-Wvisibility]
                                 const struct devlink_port_new_attrs *attrs,
                                              ^
   drivers/net/netdevsim/port_function.c:54:20: warning: declaration of 'struct 
devlink_port_new_attrs' will not be visible outside of this function 
[-Wvisibility]
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:74:23: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
           port->flavour = attrs->flavour;
                           ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:76:11: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
           if (attrs->port_index_valid)
               ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:78:16: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
                                         attrs->port_index,
                                         ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:79:16: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
                                         attrs->port_index, GFP_KERNEL);
                                         ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:91:16: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
                                         attrs->pfnum, attrs->pfnum,
                                         ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:91:30: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
                                         attrs->pfnum, attrs->pfnum,
                                                       ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
>> drivers/net/netdevsim/port_function.c:97:7: error: use of undeclared 
>> identifier 'DEVLINK_PORT_FLAVOUR_PCI_SF'
           case DEVLINK_PORT_FLAVOUR_PCI_SF:
                ^
   drivers/net/netdevsim/port_function.c:98:12: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
                   if (attrs->sfnum_valid)
                       ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:99:63: error: incomplete definition of 
type 'struct devlink_port_new_attrs'
                           ret = 
ida_alloc_range(&dev->port_functions.sfnum_ida, attrs->sfnum,
                                                                                
 ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:100:17: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                                                 attrs->sfnum, GFP_KERNEL);
                                                 ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:106:22: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                   port->pfnum = attrs->pfnum;
                                 ~~~~~^
   drivers/net/netdevsim/port_function.c:54:20: note: forward declaration of 
'struct devlink_port_new_attrs'
                              const struct devlink_port_new_attrs *attrs)
                                           ^
   drivers/net/netdevsim/port_function.c:131:7: error: use of undeclared 
identifier 'DEVLINK_PORT_FLAVOUR_PCI_SF'
           case DEVLINK_PORT_FLAVOUR_PCI_SF:
                ^
   drivers/net/netdevsim/port_function.c:151:19: warning: declaration of 
'struct devlink_port_new_attrs' will not be visible outside of this function 
[-Wvisibility]
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:156:12: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                   if (attrs->port_index_valid &&
                       ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:157:31: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                       tmp->port_index == attrs->port_index)
                                          ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:159:12: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                   if (attrs->flavour == DEVLINK_PORT_FLAVOUR_PCI_PF &&
                       ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:161:26: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                       tmp->pfnum == attrs->pfnum)
                                     ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:164:12: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                   if (attrs->flavour == DEVLINK_PORT_FLAVOUR_PCI_SF &&
                       ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:166:12: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                       attrs->sfnum_valid &&
                       ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   drivers/net/netdevsim/port_function.c:167:26: error: incomplete definition 
of type 'struct devlink_port_new_attrs'
                       tmp->sfnum == attrs->sfnum && tmp->pfnum == attrs->pfnum)
                                     ~~~~~^
   drivers/net/netdevsim/port_function.c:151:19: note: forward declaration of 
'struct devlink_port_new_attrs'
                             const struct devlink_port_new_attrs *attrs)
                                          ^
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   3 warnings and 20 errors generated.


vim +/DEVLINK_PORT_FLAVOUR_PCI_SF +97 drivers/net/netdevsim/port_function.c

    51  
    52  static struct nsim_port_fn *
    53  nsim_devlink_port_fn_alloc(struct nsim_dev *dev,
    54                             const struct devlink_port_new_attrs *attrs)
    55  {
    56          struct nsim_bus_dev *nsim_bus_dev = dev->nsim_bus_dev;
    57          struct nsim_port_fn *port;
    58          struct net_device *netdev;
    59          int ret;
    60  
    61          netdev = alloc_netdev(sizeof(*port), "eth%d", NET_NAME_UNKNOWN,
    62                                nsim_port_fn_ndev_setup);
    63          if (!netdev)
    64                  return ERR_PTR(-ENOMEM);
    65  
    66          dev_net_set(netdev, nsim_dev_net(dev));
    67          netdev->netdev_ops = &nsim_netdev_ops;
    68          nsim_bus_dev = dev->nsim_bus_dev;
    69          SET_NETDEV_DEV(netdev, &nsim_bus_dev->dev);
    70  
    71          port = netdev_priv(netdev);
    72          memset(port, 0, sizeof(*port));
    73          port->netdev = netdev;
    74          port->flavour = attrs->flavour;
    75  
    76          if (attrs->port_index_valid)
    77                  ret = ida_alloc_range(&dev->port_functions.ida,
    78                                        attrs->port_index,
    79                                        attrs->port_index, GFP_KERNEL);
    80          else
    81                  ret = ida_alloc_min(&dev->port_functions.ida,
    82                                      nsim_bus_dev->port_count, 
GFP_KERNEL);
    83          if (ret < 0)
    84                  goto port_ida_err;
    85  
    86          port->port_index = ret;
    87  
    88          switch (port->flavour) {
    89          case DEVLINK_PORT_FLAVOUR_PCI_PF:
    90                  ret = ida_alloc_range(&dev->port_functions.pfnum_ida,
    91                                        attrs->pfnum, attrs->pfnum,
    92                                        GFP_KERNEL);
    93                  if (ret < 0)
    94                          goto fn_ida_err;
    95                  port->pfnum = ret;
    96                  break;
  > 97          case DEVLINK_PORT_FLAVOUR_PCI_SF:
    98                  if (attrs->sfnum_valid)
    99                          ret = 
ida_alloc_range(&dev->port_functions.sfnum_ida, attrs->sfnum,
   100                                                attrs->sfnum, GFP_KERNEL);
   101                  else
   102                          ret = ida_alloc(&dev->port_functions.sfnum_ida, 
GFP_KERNEL);
   103                  if (ret < 0)
   104                          goto fn_ida_err;
   105                  port->sfnum = ret;
   106                  port->pfnum = attrs->pfnum;
   107                  break;
   108          default:
   109                  break;
   110          }
   111          /* refcount_t is not needed as port is protected by 
port_functions.mutex.
   112           * This count is to keep track of how many SF ports are 
attached a PF port.
   113           */
   114          port->refcount = 1;
   115          return port;
   116  
   117  fn_ida_err:
   118          ida_simple_remove(&dev->port_functions.ida, port->port_index);
   119  port_ida_err:
   120          free_netdev(netdev);
   121          return ERR_PTR(ret);
   122  }
   123  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to