Hi Ido,

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

url:    
https://github.com/0day-ci/linux/commits/idosch-idosch-org/ipv4-fib-Replay-events-when-registering-FIB-notifier/20161031-163334
config: x86_64-randconfig-s4-10311807 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   In file included from arch/x86/include/asm/uaccess.h:7:0,
                    from net/ipv4/fib_trie.c:53:
   net/ipv4/fib_trie.c: In function 'register_fib_notifier':
   net/ipv4/fib_trie.c:141:16: error: 'struct netns_ipv4' has no member named 
'fib_has_custom_rules'
      if (net->ipv4.fib_has_custom_rules)
                   ^
   include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> net/ipv4/fib_trie.c:141:3: note: in expansion of macro 'if'
      if (net->ipv4.fib_has_custom_rules)
      ^~
   net/ipv4/fib_trie.c:141:16: error: 'struct netns_ipv4' has no member named 
'fib_has_custom_rules'
      if (net->ipv4.fib_has_custom_rules)
                   ^
   include/linux/compiler.h:149:42: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                             ^~~~
>> net/ipv4/fib_trie.c:141:3: note: in expansion of macro 'if'
      if (net->ipv4.fib_has_custom_rules)
      ^~
   net/ipv4/fib_trie.c:141:16: error: 'struct netns_ipv4' has no member named 
'fib_has_custom_rules'
      if (net->ipv4.fib_has_custom_rules)
                   ^
   include/linux/compiler.h:160:16: note: in definition of macro '__trace_if'
      ______r = !!(cond);     \
                   ^~~~
>> net/ipv4/fib_trie.c:141:3: note: in expansion of macro 'if'
      if (net->ipv4.fib_has_custom_rules)
      ^~
   net/ipv4/fib_trie.c: In function 'unregister_fib_notifier':
   net/ipv4/fib_trie.c:178:16: error: 'struct netns_ipv4' has no member named 
'fib_has_custom_rules'
      if (net->ipv4.fib_has_custom_rules)
                   ^
   include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
   net/ipv4/fib_trie.c:178:3: note: in expansion of macro 'if'
      if (net->ipv4.fib_has_custom_rules)
      ^~
   net/ipv4/fib_trie.c:178:16: error: 'struct netns_ipv4' has no member named 
'fib_has_custom_rules'
      if (net->ipv4.fib_has_custom_rules)
                   ^
   include/linux/compiler.h:149:42: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                             ^~~~
   net/ipv4/fib_trie.c:178:3: note: in expansion of macro 'if'
      if (net->ipv4.fib_has_custom_rules)
      ^~
   net/ipv4/fib_trie.c:178:16: error: 'struct netns_ipv4' has no member named 
'fib_has_custom_rules'
      if (net->ipv4.fib_has_custom_rules)
                   ^
   include/linux/compiler.h:160:16: note: in definition of macro '__trace_if'
      ______r = !!(cond);     \
                   ^~~~
   net/ipv4/fib_trie.c:178:3: note: in expansion of macro 'if'
      if (net->ipv4.fib_has_custom_rules)
      ^~

vim +/if +141 net/ipv4/fib_trie.c

    47   *              Paul E. McKenney <paul...@us.ibm.com>
    48   *              Patrick McHardy <ka...@trash.net>
    49   */
    50  
    51  #define VERSION "0.409"
    52  
  > 53  #include <asm/uaccess.h>
    54  #include <linux/bitops.h>
    55  #include <linux/types.h>
    56  #include <linux/kernel.h>
    57  #include <linux/mm.h>
    58  #include <linux/string.h>
    59  #include <linux/socket.h>
    60  #include <linux/sockios.h>
    61  #include <linux/errno.h>
    62  #include <linux/in.h>
    63  #include <linux/inet.h>
    64  #include <linux/inetdevice.h>
    65  #include <linux/netdevice.h>
    66  #include <linux/if_arp.h>
    67  #include <linux/proc_fs.h>
    68  #include <linux/rcupdate.h>
    69  #include <linux/skbuff.h>
    70  #include <linux/netlink.h>
    71  #include <linux/init.h>
    72  #include <linux/list.h>
    73  #include <linux/slab.h>
    74  #include <linux/export.h>
    75  #include <linux/vmalloc.h>
    76  #include <linux/notifier.h>
    77  #include <net/net_namespace.h>
    78  #include <net/ip.h>
    79  #include <net/protocol.h>
    80  #include <net/route.h>
    81  #include <net/tcp.h>
    82  #include <net/sock.h>
    83  #include <net/ip_fib.h>
    84  #include <trace/events/fib.h>
    85  #include "fib_lookup.h"
    86  
    87  static BLOCKING_NOTIFIER_HEAD(fib_chain);
    88  
    89  static void fib_notify(struct net *net, struct notifier_block *nb,
    90                         enum fib_event_type event_type);
    91  
    92  static int call_fib_notifier(struct notifier_block *nb, struct net *net,
    93                               enum fib_event_type event_type,
    94                               struct fib_notifier_info *info)
    95  {
    96          info->net = net;
    97          return nb->notifier_call(nb, event_type, info);
    98  }
    99  
   100  static int call_fib_entry_notifier(struct notifier_block *nb, struct 
net *net,
   101                                     enum fib_event_type event_type, u32 
dst,
   102                                     int dst_len, struct fib_info *fi,
   103                                     u8 tos, u8 type, u32 tb_id, u32 
nlflags)
   104  {
   105          struct fib_entry_notifier_info info = {
   106                  .dst = dst,
   107                  .dst_len = dst_len,
   108                  .fi = fi,
   109                  .tos = tos,
   110                  .type = type,
   111                  .tb_id = tb_id,
   112                  .nlflags = nlflags,
   113          };
   114          return call_fib_notifier(nb, net, event_type, &info.info);
   115  }
   116  
   117  /**
   118   *      register_fib_notifier - register a fib notifier block
   119   *      @nb: notifier
   120   *
   121   *      Register a notifier to be called when FIB entries or rules are
   122   *      added or removed. A negative errno code is returned on failure.
   123   *
   124   *      When registered, all FIB addition events are replayed to the new
   125   *      notifier to allow the caller to have a complete view of the FIB
   126   *      tables.
   127   */
   128  
   129  int register_fib_notifier(struct notifier_block *nb)
   130  {
   131          struct net *net;
   132          int err;
   133  
   134          rtnl_lock();
   135          err = blocking_notifier_chain_register(&fib_chain, nb);
   136          if (err)
   137                  goto unlock;
   138          for_each_net(net) {
   139                  struct fib_notifier_info info;
   140  
 > 141                  if (net->ipv4.fib_has_custom_rules)
   142                          call_fib_notifier(nb, net, FIB_EVENT_RULE_ADD, 
&info);
   143                  fib_notify(net, nb, FIB_EVENT_ENTRY_ADD);
   144          }

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to