CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Eric Dumazet <[email protected]>
CC: Jakub Kicinski <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   ea922272cbe547bdf58da2aaf240d59782c6a009
commit: fb67510ba9bd3ed1f8a2db4946e847ca0418f8dc [4829/6579] ipv6: add net 
device refcount tracker to rt6_probe_deferred()
:::::: branch date: 2 days ago
:::::: commit date: 6 days ago
config: i386-randconfig-m021-20211209 
(https://download.01.org/0day-ci/archive/20211212/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

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

New smatch warnings:
net/ipv6/route.c:661 rt6_probe() warn: sleeping in atomic context

Old smatch warnings:
net/ipv6/route.c:3424 ip6_route_check_nh() error: we previously assumed '_dev' 
could be null (see line 3384)

vim +661 net/ipv6/route.c

c2f17e827b4199 Hannes Frederic Sowa         2013-10-21  610  
cc3a86c802f0ba David Ahern                  2019-04-09  611  static void 
rt6_probe(struct fib6_nh *fib6_nh)
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  612  {
f547fac624be53 Sabrina Dubroca              2018-10-12  613     struct 
__rt6_probe_work *work = NULL;
5e670d844b2a4e David Ahern                  2018-04-17  614     const struct 
in6_addr *nh_gw;
1bef4c223b8588 Eric Dumazet                 2019-11-07  615     unsigned long 
last_probe;
f2c31e32b378a6 Eric Dumazet                 2011-07-29  616     struct 
neighbour *neigh;
5e670d844b2a4e David Ahern                  2018-04-17  617     struct 
net_device *dev;
f547fac624be53 Sabrina Dubroca              2018-10-12  618     struct 
inet6_dev *idev;
5e670d844b2a4e David Ahern                  2018-04-17  619  
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  620     /*
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  621      * Okay, this 
does not seem to be appropriate
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  622      * for now, 
however, we need to check if it
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  623      * is really 
so; aka Router Reachability Probing.
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  624      *
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  625      * Router 
Reachability Probe MUST be rate-limited
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  626      * to no more 
than one per minute.
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  627      */
004b39427f9456 Hangbin Liu                  2019-11-20  628     if 
(!fib6_nh->fib_nh_gw_family)
7ff74a596b6aa4 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  629                 return;
5e670d844b2a4e David Ahern                  2018-04-17  630  
cc3a86c802f0ba David Ahern                  2019-04-09  631     nh_gw = 
&fib6_nh->fib_nh_gw6;
cc3a86c802f0ba David Ahern                  2019-04-09  632     dev = 
fib6_nh->fib_nh_dev;
2152caea719657 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  633         
rcu_read_lock_bh();
1bef4c223b8588 Eric Dumazet                 2019-11-07  634     last_probe = 
READ_ONCE(fib6_nh->last_probe);
f547fac624be53 Sabrina Dubroca              2018-10-12  635     idev = 
__in6_dev_get(dev);
5e670d844b2a4e David Ahern                  2018-04-17  636     neigh = 
__ipv6_neigh_lookup_noref(dev, nh_gw);
2152caea719657 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  637         if (neigh) {
8d6c31bf574177 Martin KaFai Lau             2015-07-24  638             if 
(neigh->nud_state & NUD_VALID)
8d6c31bf574177 Martin KaFai Lau             2015-07-24  639                     
goto out;
8d6c31bf574177 Martin KaFai Lau             2015-07-24  640  
2152caea719657 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  641                 
write_lock(&neigh->lock);
990edb428c2c85 Martin KaFai Lau             2015-07-24  642             if 
(!(neigh->nud_state & NUD_VALID) &&
990edb428c2c85 Martin KaFai Lau             2015-07-24  643                 
time_after(jiffies,
dcd1f572954f9d David Ahern                  2018-04-18  644                     
       neigh->updated + idev->cnf.rtr_probe_interval)) {
c2f17e827b4199 Hannes Frederic Sowa         2013-10-21  645                     
work = kmalloc(sizeof(*work), GFP_ATOMIC);
990edb428c2c85 Martin KaFai Lau             2015-07-24  646                     
if (work)
7e980569642811 Jiri Benc                    2013-12-11  647                     
        __neigh_set_probe_once(neigh);
990edb428c2c85 Martin KaFai Lau             2015-07-24  648             }
2152caea719657 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  649                 
write_unlock(&neigh->lock);
1bef4c223b8588 Eric Dumazet                 2019-11-07  650     } else if 
(time_after(jiffies, last_probe +
f547fac624be53 Sabrina Dubroca              2018-10-12  651                     
               idev->cnf.rtr_probe_interval)) {
990edb428c2c85 Martin KaFai Lau             2015-07-24  652             work = 
kmalloc(sizeof(*work), GFP_ATOMIC);
990edb428c2c85 Martin KaFai Lau             2015-07-24  653     }
2152caea719657 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  654  
1bef4c223b8588 Eric Dumazet                 2019-11-07  655     if (!work || 
cmpxchg(&fib6_nh->last_probe,
1bef4c223b8588 Eric Dumazet                 2019-11-07  656                     
     last_probe, jiffies) != last_probe) {
1bef4c223b8588 Eric Dumazet                 2019-11-07  657             
kfree(work);
1bef4c223b8588 Eric Dumazet                 2019-11-07  658     } else {
c2f17e827b4199 Hannes Frederic Sowa         2013-10-21  659             
INIT_WORK(&work->work, rt6_probe_deferred);
5e670d844b2a4e David Ahern                  2018-04-17  660             
work->target = *nh_gw;
fb67510ba9bd3e Eric Dumazet                 2021-12-04 @661             
dev_hold_track(dev, &work->dev_tracker, GFP_KERNEL);
5e670d844b2a4e David Ahern                  2018-04-17  662             
work->dev = dev;
c2f17e827b4199 Hannes Frederic Sowa         2013-10-21  663             
schedule_work(&work->work);
c2f17e827b4199 Hannes Frederic Sowa         2013-10-21  664     }
990edb428c2c85 Martin KaFai Lau             2015-07-24  665  
8d6c31bf574177 Martin KaFai Lau             2015-07-24  666  out:
2152caea719657 YOSHIFUJI Hideaki / 吉藤英明 2013-01-17  667         
rcu_read_unlock_bh();
f2c31e32b378a6 Eric Dumazet                 2011-07-29  668  }
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  669  #else
cc3a86c802f0ba David Ahern                  2019-04-09  670  static inline void 
rt6_probe(struct fib6_nh *fib6_nh)
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  671  {
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  672  }
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  673  #endif
270972554c91ac YOSHIFUJI Hideaki            2006-03-20  674  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to