tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   06d5d309a3f17e32cd59926f391db1e1ea652184
commit: 8914add2c9e5518f6a864936658bba5752510b39 net/mlx5e: Handle FIB events 
to update tunnel endpoint device
date:   3 weeks ago
config: powerpc-randconfig-r004-20210301 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
b077d82b00d81934c7c27ac89dd8b0e7f448bded)
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 powerpc cross compiling tool for clang build
        # apt-get install binutils-powerpc-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8914add2c9e5518f6a864936658bba5752510b39
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 8914add2c9e5518f6a864936658bba5752510b39
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

   In file included from 
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:5:
   In file included from 
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.h:7:
   In file included from drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h:7:
   In file included from drivers/net/ethernet/mellanox/mlx5/core/en_tc.h:40:
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.h:78:5: warning: no 
previous prototype for function 'mlx5e_tc_tun_update_header_ipv6' 
[-Wmissing-prototypes]
   int mlx5e_tc_tun_update_header_ipv6(struct mlx5e_priv *priv,
       ^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.h:78:1: note: declare 
'static' if the function is not intended to be used outside of this translation 
unit
   int mlx5e_tc_tun_update_header_ipv6(struct mlx5e_priv *priv,
   ^
   static 
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1510:12: error: 
>> implicit declaration of function 'fib_info_nh' 
>> [-Werror,-Wimplicit-function-declaration]
           fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
                     ^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1510:12: note: did 
you mean 'fib_info_put'?
   include/net/ip_fib.h:528:20: note: 'fib_info_put' declared here
   static inline void fib_info_put(struct fib_info *fi)
                      ^
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1510:42: error: 
>> member reference type 'int' is not a pointer
           fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
   include/net/ip_fib.h:113:21: note: expanded from macro 'fib_nh_dev'
   #define fib_nh_dev              nh_common.nhc_dev
                                   ^
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1552:13: error: 
>> incomplete definition of type 'struct fib6_entry_notifier_info'
           fen_info = container_of(info, struct fib6_entry_notifier_info, info);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:694:51: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:256:74: note: expanded from macro 
'__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                            ^
   include/linux/build_bug.h:39:58: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
   include/linux/compiler_types.h:320:22: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:308:23: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:300:9: note: expanded from macro 
'__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1546:9: note: 
forward declaration of 'struct fib6_entry_notifier_info'
           struct fib6_entry_notifier_info *fen_info;
                  ^
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1552:13: error: 
>> offsetof of incomplete type 'struct fib6_entry_notifier_info'
           fen_info = container_of(info, struct fib6_entry_notifier_info, info);
                      ^                  ~~~~~~
   include/linux/kernel.h:697:21: note: expanded from macro 'container_of'
           ((type *)(__mptr - offsetof(type, member))); })
                              ^        ~~~~
   include/linux/stddef.h:17:32: note: expanded from macro 'offsetof'
   #define offsetof(TYPE, MEMBER)  __compiler_offsetof(TYPE, MEMBER)
                                   ^                   ~~~~
   include/linux/compiler_types.h:140:35: note: expanded from macro 
'__compiler_offsetof'
   #define __compiler_offsetof(a, b)       __builtin_offsetof(a, b)
                                           ^                  ~
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1546:9: note: 
forward declaration of 'struct fib6_entry_notifier_info'
           struct fib6_entry_notifier_info *fen_info;
                  ^
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1552:11: error: 
>> assigning to 'struct fib6_entry_notifier_info *' from incompatible type 
>> 'void'
           fen_info = container_of(info, struct fib6_entry_notifier_info, info);
                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1553:12: error: 
>> implicit declaration of function 'fib6_info_nh_dev' 
>> [-Werror,-Wimplicit-function-declaration]
           fib_dev = fib6_info_nh_dev(fen_info->rt);
                     ^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1553:37: error: 
incomplete definition of type 'struct fib6_entry_notifier_info'
           fib_dev = fib6_info_nh_dev(fen_info->rt);
                                      ~~~~~~~~^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1546:9: note: 
forward declaration of 'struct fib6_entry_notifier_info'
           struct fib6_entry_notifier_info *fen_info;
                  ^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1555:14: error: 
incomplete definition of type 'struct fib6_entry_notifier_info'
               fen_info->rt->fib6_dst.plen != 128)
               ~~~~~~~~^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1546:9: note: 
forward declaration of 'struct fib6_entry_notifier_info'
           struct fib6_entry_notifier_info *fen_info;
                  ^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1562:39: error: 
incomplete definition of type 'struct fib6_entry_notifier_info'
           memcpy(&key.endpoint_ip.v6, &fen_info->rt->fib6_dst.addr,
                                        ~~~~~~~~^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1546:9: note: 
forward declaration of 'struct fib6_entry_notifier_info'
           struct fib6_entry_notifier_info *fen_info;
                  ^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1563:24: error: 
incomplete definition of type 'struct fib6_entry_notifier_info'
                  sizeof(fen_info->rt->fib6_dst.addr));
                         ~~~~~~~~^
   drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c:1546:9: note: 
forward declaration of 'struct fib6_entry_notifier_info'
           struct fib6_entry_notifier_info *fen_info;
                  ^
   1 warning and 10 errors generated.


vim +/fib_info_nh +1510 
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c

  1495  
  1496  static struct mlx5e_tc_fib_event_data *
  1497  mlx5e_init_fib_work_ipv4(struct mlx5e_priv *priv,
  1498                           struct net_device *ul_dev,
  1499                           struct mlx5e_tc_tun_encap *encap,
  1500                           unsigned long event,
  1501                           struct fib_notifier_info *info)
  1502  {
  1503          struct fib_entry_notifier_info *fen_info;
  1504          struct mlx5e_tc_fib_event_data *fib_work;
  1505          struct mlx5e_route_entry *r;
  1506          struct mlx5e_route_key key;
  1507          struct net_device *fib_dev;
  1508  
  1509          fen_info = container_of(info, struct fib_entry_notifier_info, 
info);
> 1510          fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
  1511          if (fib_dev->netdev_ops != &mlx5e_netdev_ops ||
  1512              fen_info->dst_len != 32)
  1513                  return NULL;
  1514  
  1515          fib_work = mlx5e_tc_init_fib_work(event, ul_dev, GFP_ATOMIC);
  1516          if (!fib_work)
  1517                  return ERR_PTR(-ENOMEM);
  1518  
  1519          key.endpoint_ip.v4 = htonl(fen_info->dst);
  1520          key.ip_version = 4;
  1521  
  1522          /* Can't fail after this point because releasing reference to r
  1523           * requires obtaining sleeping mutex which we can't do in atomic
  1524           * context.
  1525           */
  1526          r = mlx5e_route_lookup_for_update(encap, &key);
  1527          if (!r)
  1528                  goto out;
  1529          fib_work->r = r;
  1530          dev_hold(ul_dev);
  1531  
  1532          return fib_work;
  1533  
  1534  out:
  1535          kfree(fib_work);
  1536          return NULL;
  1537  }
  1538  
  1539  static struct mlx5e_tc_fib_event_data *
  1540  mlx5e_init_fib_work_ipv6(struct mlx5e_priv *priv,
  1541                           struct net_device *ul_dev,
  1542                           struct mlx5e_tc_tun_encap *encap,
  1543                           unsigned long event,
  1544                           struct fib_notifier_info *info)
  1545  {
  1546          struct fib6_entry_notifier_info *fen_info;
  1547          struct mlx5e_tc_fib_event_data *fib_work;
  1548          struct mlx5e_route_entry *r;
  1549          struct mlx5e_route_key key;
  1550          struct net_device *fib_dev;
  1551  
> 1552          fen_info = container_of(info, struct fib6_entry_notifier_info, 
> info);
> 1553          fib_dev = fib6_info_nh_dev(fen_info->rt);
  1554          if (fib_dev->netdev_ops != &mlx5e_netdev_ops ||
  1555              fen_info->rt->fib6_dst.plen != 128)
  1556                  return NULL;
  1557  
  1558          fib_work = mlx5e_tc_init_fib_work(event, ul_dev, GFP_ATOMIC);
  1559          if (!fib_work)
  1560                  return ERR_PTR(-ENOMEM);
  1561  
  1562          memcpy(&key.endpoint_ip.v6, &fen_info->rt->fib6_dst.addr,
  1563                 sizeof(fen_info->rt->fib6_dst.addr));
  1564          key.ip_version = 6;
  1565  
  1566          /* Can't fail after this point because releasing reference to r
  1567           * requires obtaining sleeping mutex which we can't do in atomic
  1568           * context.
  1569           */
  1570          r = mlx5e_route_lookup_for_update(encap, &key);
  1571          if (!r)
  1572                  goto out;
  1573          fib_work->r = r;
  1574          dev_hold(ul_dev);
  1575  
  1576          return fib_work;
  1577  
  1578  out:
  1579          kfree(fib_work);
  1580          return NULL;
  1581  }
  1582  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to