tree:   https://github.com/dsahern/linux rtnl-dump-enhancements
head:   745e7e3c45bd516de34f29a76f6f631c1a9ea2de
commit: cd8ec66ac455ecb49881285536683b736e453977 [24/27] net/ipv6: Plumb 
support for filtering route dumps

New smatch warnings:
net/ipv6/ip6_fib.c:645 inet6_dump_fib() error: uninitialized symbol 'h'.

Old smatch warnings:
net/ipv6/ip6_fib.c:1891 fib6_walk_continue() warn: missing break? reassigning 
'w->state'

# 
https://github.com/dsahern/linux/commit/cd8ec66ac455ecb49881285536683b736e453977
git remote add dsahern-linux https://github.com/dsahern/linux
git remote update dsahern-linux
git checkout cd8ec66ac455ecb49881285536683b736e453977
vim +/h +645 net/ipv6/ip6_fib.c

1b43af54 Patrick McHardy      2006-08-10  568  
c127ea2c Thomas Graf          2007-03-22  569  static int inet6_dump_fib(struct 
sk_buff *skb, struct netlink_callback *cb)
1b43af54 Patrick McHardy      2006-08-10  570  {
1b435d3d David Ahern          2018-10-01  571   const struct nlmsghdr *nlh = 
cb->nlh;
3b1e0a65 YOSHIFUJI Hideaki    2008-03-26  572   struct net *net = 
sock_net(skb->sk);
d3190d3a David Ahern          2018-10-01  573   struct rt6_rtnl_dump_arg arg = 
{};
1b43af54 Patrick McHardy      2006-08-10  574   unsigned int h, s_h;
                                                ^^^^^^^^^^^^^^

1b43af54 Patrick McHardy      2006-08-10  575   unsigned int e = 0, s_e;
94b2cfe0 Hannes Frederic Sowa 2014-10-06  576   struct fib6_walker *w;
1b43af54 Patrick McHardy      2006-08-10  577   struct fib6_table *tb;
58f09b78 Daniel Lezcano       2008-03-03  578   struct hlist_head *head;
1b43af54 Patrick McHardy      2006-08-10  579   int res = 0;
1b43af54 Patrick McHardy      2006-08-10  580  
1b435d3d David Ahern          2018-10-01  581   if (cb->strict_check) {
d3190d3a David Ahern          2018-10-01  582           int err = 
ip_valid_fib_dump_req(nlh, &arg.filter, cb->extack);
1b435d3d David Ahern          2018-10-01  583  
1b435d3d David Ahern          2018-10-01  584           if (err)
1b435d3d David Ahern          2018-10-01  585                   return err;
1b435d3d David Ahern          2018-10-01  586   }
1b435d3d David Ahern          2018-10-01  587  
1b43af54 Patrick McHardy      2006-08-10  588   s_h = cb->args[0];
1b43af54 Patrick McHardy      2006-08-10  589   s_e = cb->args[1];
1b43af54 Patrick McHardy      2006-08-10  590  
1b43af54 Patrick McHardy      2006-08-10  591   w = (void *)cb->args[2];
507c9b1e David S. Miller      2011-12-03  592   if (!w) {
1b43af54 Patrick McHardy      2006-08-10  593           /* New dump:
1b43af54 Patrick McHardy      2006-08-10  594            *
1b43af54 Patrick McHardy      2006-08-10  595            * 1. hook callback 
destructor.
1b43af54 Patrick McHardy      2006-08-10  596            */
1b43af54 Patrick McHardy      2006-08-10  597           cb->args[3] = 
(long)cb->done;
1b43af54 Patrick McHardy      2006-08-10  598           cb->done = 
fib6_dump_done;
1b43af54 Patrick McHardy      2006-08-10  599  
1b43af54 Patrick McHardy      2006-08-10  600           /*
1b43af54 Patrick McHardy      2006-08-10  601            * 2. allocate and 
initialize walker.
1b43af54 Patrick McHardy      2006-08-10  602            */
1b43af54 Patrick McHardy      2006-08-10  603           w = kzalloc(sizeof(*w), 
GFP_ATOMIC);
507c9b1e David S. Miller      2011-12-03  604           if (!w)
1b43af54 Patrick McHardy      2006-08-10  605                   return -ENOMEM;
1b43af54 Patrick McHardy      2006-08-10  606           w->func = 
fib6_dump_node;
1b43af54 Patrick McHardy      2006-08-10  607           cb->args[2] = (long)w;
1b43af54 Patrick McHardy      2006-08-10  608   }
1b43af54 Patrick McHardy      2006-08-10  609  
1b43af54 Patrick McHardy      2006-08-10  610   arg.skb = skb;
1b43af54 Patrick McHardy      2006-08-10  611   arg.cb = cb;
191cd582 Brian Haley          2008-08-14  612   arg.net = net;
1b43af54 Patrick McHardy      2006-08-10  613   w->args = &arg;
1b43af54 Patrick McHardy      2006-08-10  614  
e67f88dd Eric Dumazet         2011-04-27  615   rcu_read_lock();
cd8ec66a David Ahern          2018-10-01  616  
cd8ec66a David Ahern          2018-10-01  617   if (arg.filter.ifindex) {
cd8ec66a David Ahern          2018-10-01  618           arg.filter.dev = 
dev_get_by_index_rcu(net, arg.filter.ifindex);
cd8ec66a David Ahern          2018-10-01  619           if (!arg.filter.dev) {
cd8ec66a David Ahern          2018-10-01  620                   res = -ENODEV;
cd8ec66a David Ahern          2018-10-01  621                   goto out;
                                                                ^^^^^^^^^

cd8ec66a David Ahern          2018-10-01  622           }
cd8ec66a David Ahern          2018-10-01  623   }
cd8ec66a David Ahern          2018-10-01  624  
a33bc5c1 Neil Horman          2009-07-30  625   for (h = s_h; h < 
FIB6_TABLE_HASHSZ; h++, s_e = 0) {
                                                     
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1b43af54 Patrick McHardy      2006-08-10  626           e = 0;
58f09b78 Daniel Lezcano       2008-03-03  627           head = 
&net->ipv6.fib_table_hash[h];
b67bfe0d Sasha Levin          2013-02-27  628           
hlist_for_each_entry_rcu(tb, head, tb6_hlist) {
1b43af54 Patrick McHardy      2006-08-10  629                   if (e < s_e)
1b43af54 Patrick McHardy      2006-08-10  630                           goto 
next;
cd8ec66a David Ahern          2018-10-01  631                   if 
(arg.filter.table_id &&
cd8ec66a David Ahern          2018-10-01  632                       
arg.filter.table_id != tb->tb6_id)
cd8ec66a David Ahern          2018-10-01  633                           goto 
next;
cd8ec66a David Ahern          2018-10-01  634  
1b43af54 Patrick McHardy      2006-08-10  635                   res = 
fib6_dump_table(tb, skb, cb);
1b43af54 Patrick McHardy      2006-08-10  636                   if (res != 0)
1b43af54 Patrick McHardy      2006-08-10  637                           goto 
out;
1b43af54 Patrick McHardy      2006-08-10  638  next:
1b43af54 Patrick McHardy      2006-08-10  639                   e++;
1b43af54 Patrick McHardy      2006-08-10  640           }
1b43af54 Patrick McHardy      2006-08-10  641   }
1b43af54 Patrick McHardy      2006-08-10  642  out:
e67f88dd Eric Dumazet         2011-04-27  643   rcu_read_unlock();
1b43af54 Patrick McHardy      2006-08-10  644   cb->args[1] = e;
1b43af54 Patrick McHardy      2006-08-10 @645   cb->args[0] = h;
                                                ^^^^^^^^^^^^^^^
1b43af54 Patrick McHardy      2006-08-10  646  
1b43af54 Patrick McHardy      2006-08-10  647   res = res < 0 ? res : skb->len;
1b43af54 Patrick McHardy      2006-08-10  648   if (res <= 0)
1b43af54 Patrick McHardy      2006-08-10  649           fib6_dump_end(cb);
1b43af54 Patrick McHardy      2006-08-10  650   return res;
1b43af54 Patrick McHardy      2006-08-10  651  }
^1da177e Linus Torvalds       2005-04-16  652  

:::::: The code at line 645 was first introduced by commit
:::::: 1b43af5480c351dbcb2eef478bafe179cbeb6e83 [IPV6]: Increase number of 
possible routing tables to 2^32

:::::: TO: Patrick McHardy <ka...@trash.net>
:::::: CC: David S. Miller <da...@sunset.davemloft.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to