oe-kbuild.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
@ 2023-02-03  3:49 kernel test robot
  2023-02-03  8:56 ` Dan Carpenter
  2023-02-03 12:21 ` Guillaume Nault
  0 siblings, 2 replies; 5+ messages in thread
From: kernel test robot @ 2023-02-03  3:49 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Cong Wang <cong.wang@bytedance.com>
CC: Guillaume Nault <gnault@redhat.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   66a87fff1a87c260452f5a57123891ca5258c449
commit: c4d48a58f32c5972174a1d01c33b296fe378cce0 l2tp: convert l2tp_tunnel_list to idr
date:   3 weeks ago
:::::: branch date: 3 hours ago
:::::: commit date: 3 weeks ago
config: powerpc-randconfig-m031-20230202 (https://download.01.org/0day-ci/archive/20230203/202302031144.yY6UaRcD-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>

smatch warnings:
net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'

vim +/ret +1481 net/l2tp/l2tp_core.c

6b9f34239b00e6 Guillaume Nault 2018-04-10  1455  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1456  int l2tp_tunnel_register(struct l2tp_tunnel *tunnel, struct net *net,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1457  			 struct l2tp_tunnel_cfg *cfg)
6b9f34239b00e6 Guillaume Nault 2018-04-10  1458  {
c4d48a58f32c59 Cong Wang       2023-01-13  1459  	struct l2tp_net *pn = l2tp_pernet(net);
c4d48a58f32c59 Cong Wang       2023-01-13  1460  	u32 tunnel_id = tunnel->tunnel_id;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1461  	struct socket *sock;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1462  	struct sock *sk;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1463  	int ret;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1464  
c4d48a58f32c59 Cong Wang       2023-01-13  1465  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
c4d48a58f32c59 Cong Wang       2023-01-13  1466  	ret = idr_alloc_u32(&pn->l2tp_tunnel_idr, NULL, &tunnel_id, tunnel_id,
c4d48a58f32c59 Cong Wang       2023-01-13  1467  			    GFP_ATOMIC);
c4d48a58f32c59 Cong Wang       2023-01-13  1468  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
c4d48a58f32c59 Cong Wang       2023-01-13  1469  	if (ret)
c4d48a58f32c59 Cong Wang       2023-01-13  1470  		return ret == -ENOSPC ? -EEXIST : ret;
c4d48a58f32c59 Cong Wang       2023-01-13  1471  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1472  	if (tunnel->fd < 0) {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1473  		ret = l2tp_tunnel_sock_create(net, tunnel->tunnel_id,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1474  					      tunnel->peer_tunnel_id, cfg,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1475  					      &sock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1476  		if (ret < 0)
6b9f34239b00e6 Guillaume Nault 2018-04-10  1477  			goto err;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1478  	} else {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1479  		sock = sockfd_lookup(tunnel->fd, &ret);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1480  		if (!sock)
6b9f34239b00e6 Guillaume Nault 2018-04-10 @1481  			goto err;
b68777d54fac21 Jakub Sitnicki  2022-11-14  1482  	}
b68777d54fac21 Jakub Sitnicki  2022-11-14  1483  
b68777d54fac21 Jakub Sitnicki  2022-11-14  1484  	sk = sock->sk;
af295e854a4e38 Jakub Sitnicki  2022-11-21  1485  	write_lock_bh(&sk->sk_callback_lock);
b68777d54fac21 Jakub Sitnicki  2022-11-14  1486  	ret = l2tp_validate_socket(sk, net, tunnel->encap);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1487  	if (ret < 0)
af295e854a4e38 Jakub Sitnicki  2022-11-21  1488  		goto err_inval_sock;
af295e854a4e38 Jakub Sitnicki  2022-11-21  1489  	rcu_assign_sk_user_data(sk, tunnel);
af295e854a4e38 Jakub Sitnicki  2022-11-21  1490  	write_unlock_bh(&sk->sk_callback_lock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1491  
69e16d01d1de4f Gong, Sishuai   2021-04-27  1492  	sock_hold(sk);
69e16d01d1de4f Gong, Sishuai   2021-04-27  1493  	tunnel->sock = sk;
c4d48a58f32c59 Cong Wang       2023-01-13  1494  	tunnel->l2tp_net = net;
69e16d01d1de4f Gong, Sishuai   2021-04-27  1495  
c4d48a58f32c59 Cong Wang       2023-01-13  1496  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
c4d48a58f32c59 Cong Wang       2023-01-13  1497  	idr_replace(&pn->l2tp_tunnel_idr, tunnel, tunnel->tunnel_id);
c4d48a58f32c59 Cong Wang       2023-01-13  1498  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1499  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1500  	if (tunnel->encap == L2TP_ENCAPTYPE_UDP) {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1501  		struct udp_tunnel_sock_cfg udp_cfg = {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1502  			.sk_user_data = tunnel,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1503  			.encap_type = UDP_ENCAP_L2TPINUDP,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1504  			.encap_rcv = l2tp_udp_encap_recv,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1505  			.encap_destroy = l2tp_udp_encap_destroy,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1506  		};
6b9f34239b00e6 Guillaume Nault 2018-04-10  1507  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1508  		setup_udp_tunnel_sock(net, sock, &udp_cfg);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1509  	}
6b9f34239b00e6 Guillaume Nault 2018-04-10  1510  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1511  	tunnel->old_sk_destruct = sk->sk_destruct;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1512  	sk->sk_destruct = &l2tp_tunnel_destruct;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1513  	lockdep_set_class_and_name(&sk->sk_lock.slock, &l2tp_socket_class,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1514  				   "l2tp_sock");
6b9f34239b00e6 Guillaume Nault 2018-04-10  1515  	sk->sk_allocation = GFP_ATOMIC;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1516  
6b7bdcd7ca01d8 Tom Parkin      2020-08-22  1517  	trace_register_tunnel(tunnel);
6b7bdcd7ca01d8 Tom Parkin      2020-08-22  1518  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1519  	if (tunnel->fd >= 0)
6b9f34239b00e6 Guillaume Nault 2018-04-10  1520  		sockfd_put(sock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1521  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1522  	return 0;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1523  
af295e854a4e38 Jakub Sitnicki  2022-11-21  1524  err_inval_sock:
af295e854a4e38 Jakub Sitnicki  2022-11-21  1525  	write_unlock_bh(&sk->sk_callback_lock);
af295e854a4e38 Jakub Sitnicki  2022-11-21  1526  
f6cd651b056ffd Guillaume Nault 2018-04-10  1527  	if (tunnel->fd < 0)
f6cd651b056ffd Guillaume Nault 2018-04-10  1528  		sock_release(sock);
f6cd651b056ffd Guillaume Nault 2018-04-10  1529  	else
6b9f34239b00e6 Guillaume Nault 2018-04-10  1530  		sockfd_put(sock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1531  err:
c4d48a58f32c59 Cong Wang       2023-01-13  1532  	l2tp_tunnel_remove(net, tunnel);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1533  	return ret;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1534  }
6b9f34239b00e6 Guillaume Nault 2018-04-10  1535  EXPORT_SYMBOL_GPL(l2tp_tunnel_register);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1536  

:::::: The code at line 1481 was first introduced by commit
:::::: 6b9f34239b00e6956a267abed2bc559ede556ad6 l2tp: fix races in tunnel creation

:::::: TO: Guillaume Nault <g.nault@alphalink.fr>
:::::: CC: David S. Miller <davem@davemloft.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

^ permalink raw reply	[flat|nested] 5+ messages in thread

* net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
  2023-02-03  3:49 net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret' kernel test robot
@ 2023-02-03  8:56 ` Dan Carpenter
  2023-02-03 12:21 ` Guillaume Nault
  1 sibling, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2023-02-03  8:56 UTC (permalink / raw)
  To: oe-kbuild, Cong Wang; +Cc: lkp, oe-kbuild-all, linux-kernel, Guillaume Nault

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   66a87fff1a87c260452f5a57123891ca5258c449
commit: c4d48a58f32c5972174a1d01c33b296fe378cce0 l2tp: convert l2tp_tunnel_list to idr
config: powerpc-randconfig-m031-20230202 (https://download.01.org/0day-ci/archive/20230203/202302031144.yY6UaRcD-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>

smatch warnings:
net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'

vim +/ret +1481 net/l2tp/l2tp_core.c

6b9f34239b00e6 Guillaume Nault 2018-04-10  1456  int l2tp_tunnel_register(struct l2tp_tunnel *tunnel, struct net *net,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1457  			 struct l2tp_tunnel_cfg *cfg)
6b9f34239b00e6 Guillaume Nault 2018-04-10  1458  {
c4d48a58f32c59 Cong Wang       2023-01-13  1459  	struct l2tp_net *pn = l2tp_pernet(net);
c4d48a58f32c59 Cong Wang       2023-01-13  1460  	u32 tunnel_id = tunnel->tunnel_id;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1461  	struct socket *sock;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1462  	struct sock *sk;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1463  	int ret;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1464  
c4d48a58f32c59 Cong Wang       2023-01-13  1465  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
c4d48a58f32c59 Cong Wang       2023-01-13  1466  	ret = idr_alloc_u32(&pn->l2tp_tunnel_idr, NULL, &tunnel_id, tunnel_id,
c4d48a58f32c59 Cong Wang       2023-01-13  1467  			    GFP_ATOMIC);
c4d48a58f32c59 Cong Wang       2023-01-13  1468  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
c4d48a58f32c59 Cong Wang       2023-01-13  1469  	if (ret)
c4d48a58f32c59 Cong Wang       2023-01-13  1470  		return ret == -ENOSPC ? -EEXIST : ret;
c4d48a58f32c59 Cong Wang       2023-01-13  1471  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1472  	if (tunnel->fd < 0) {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1473  		ret = l2tp_tunnel_sock_create(net, tunnel->tunnel_id,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1474  					      tunnel->peer_tunnel_id, cfg,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1475  					      &sock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1476  		if (ret < 0)
6b9f34239b00e6 Guillaume Nault 2018-04-10  1477  			goto err;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1478  	} else {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1479  		sock = sockfd_lookup(tunnel->fd, &ret);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1480  		if (!sock)
6b9f34239b00e6 Guillaume Nault 2018-04-10 @1481  			goto err;
                                                                        ^^^^^^^^^
I don't know why this is showing up as a 3 week old warning when it
looks like the code is from 2018...  Anyway, should this be an error
path or a success path?

b68777d54fac21 Jakub Sitnicki  2022-11-14  1482  	}
b68777d54fac21 Jakub Sitnicki  2022-11-14  1483  
b68777d54fac21 Jakub Sitnicki  2022-11-14  1484  	sk = sock->sk;
af295e854a4e38 Jakub Sitnicki  2022-11-21  1485  	write_lock_bh(&sk->sk_callback_lock);
b68777d54fac21 Jakub Sitnicki  2022-11-14  1486  	ret = l2tp_validate_socket(sk, net, tunnel->encap);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1487  	if (ret < 0)
af295e854a4e38 Jakub Sitnicki  2022-11-21  1488  		goto err_inval_sock;
af295e854a4e38 Jakub Sitnicki  2022-11-21  1489  	rcu_assign_sk_user_data(sk, tunnel);
af295e854a4e38 Jakub Sitnicki  2022-11-21  1490  	write_unlock_bh(&sk->sk_callback_lock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1491  
69e16d01d1de4f Gong, Sishuai   2021-04-27  1492  	sock_hold(sk);
69e16d01d1de4f Gong, Sishuai   2021-04-27  1493  	tunnel->sock = sk;
c4d48a58f32c59 Cong Wang       2023-01-13  1494  	tunnel->l2tp_net = net;
69e16d01d1de4f Gong, Sishuai   2021-04-27  1495  
c4d48a58f32c59 Cong Wang       2023-01-13  1496  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
c4d48a58f32c59 Cong Wang       2023-01-13  1497  	idr_replace(&pn->l2tp_tunnel_idr, tunnel, tunnel->tunnel_id);
c4d48a58f32c59 Cong Wang       2023-01-13  1498  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1499  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1500  	if (tunnel->encap == L2TP_ENCAPTYPE_UDP) {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1501  		struct udp_tunnel_sock_cfg udp_cfg = {
6b9f34239b00e6 Guillaume Nault 2018-04-10  1502  			.sk_user_data = tunnel,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1503  			.encap_type = UDP_ENCAP_L2TPINUDP,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1504  			.encap_rcv = l2tp_udp_encap_recv,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1505  			.encap_destroy = l2tp_udp_encap_destroy,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1506  		};
6b9f34239b00e6 Guillaume Nault 2018-04-10  1507  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1508  		setup_udp_tunnel_sock(net, sock, &udp_cfg);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1509  	}
6b9f34239b00e6 Guillaume Nault 2018-04-10  1510  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1511  	tunnel->old_sk_destruct = sk->sk_destruct;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1512  	sk->sk_destruct = &l2tp_tunnel_destruct;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1513  	lockdep_set_class_and_name(&sk->sk_lock.slock, &l2tp_socket_class,
6b9f34239b00e6 Guillaume Nault 2018-04-10  1514  				   "l2tp_sock");
6b9f34239b00e6 Guillaume Nault 2018-04-10  1515  	sk->sk_allocation = GFP_ATOMIC;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1516  
6b7bdcd7ca01d8 Tom Parkin      2020-08-22  1517  	trace_register_tunnel(tunnel);
6b7bdcd7ca01d8 Tom Parkin      2020-08-22  1518  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1519  	if (tunnel->fd >= 0)
6b9f34239b00e6 Guillaume Nault 2018-04-10  1520  		sockfd_put(sock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1521  
6b9f34239b00e6 Guillaume Nault 2018-04-10  1522  	return 0;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1523  
af295e854a4e38 Jakub Sitnicki  2022-11-21  1524  err_inval_sock:
af295e854a4e38 Jakub Sitnicki  2022-11-21  1525  	write_unlock_bh(&sk->sk_callback_lock);
af295e854a4e38 Jakub Sitnicki  2022-11-21  1526  
f6cd651b056ffd Guillaume Nault 2018-04-10  1527  	if (tunnel->fd < 0)
f6cd651b056ffd Guillaume Nault 2018-04-10  1528  		sock_release(sock);
f6cd651b056ffd Guillaume Nault 2018-04-10  1529  	else
6b9f34239b00e6 Guillaume Nault 2018-04-10  1530  		sockfd_put(sock);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1531  err:
c4d48a58f32c59 Cong Wang       2023-01-13  1532  	l2tp_tunnel_remove(net, tunnel);
6b9f34239b00e6 Guillaume Nault 2018-04-10  1533  	return ret;
6b9f34239b00e6 Guillaume Nault 2018-04-10  1534  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
  2023-02-03  3:49 net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret' kernel test robot
  2023-02-03  8:56 ` Dan Carpenter
@ 2023-02-03 12:21 ` Guillaume Nault
  2023-02-13  5:30   ` Dan Carpenter
  1 sibling, 1 reply; 5+ messages in thread
From: Guillaume Nault @ 2023-02-03 12:21 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: oe-kbuild, Cong Wang, lkp, oe-kbuild-all, linux-kernel

On Fri, Feb 03, 2023 at 11:56:01AM +0300, Dan Carpenter wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   66a87fff1a87c260452f5a57123891ca5258c449
> commit: c4d48a58f32c5972174a1d01c33b296fe378cce0 l2tp: convert l2tp_tunnel_list to idr
> config: powerpc-randconfig-m031-20230202 (https://download.01.org/0day-ci/archive/20230203/202302031144.yY6UaRcD-lkp@intel.com/config)
> compiler: powerpc-linux-gcc (GCC) 12.1.0
> 
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <error27@gmail.com>
> 
> smatch warnings:
> net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
> 
> vim +/ret +1481 net/l2tp/l2tp_core.c
> 
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1456  int l2tp_tunnel_register(struct l2tp_tunnel *tunnel, struct net *net,
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1457  			 struct l2tp_tunnel_cfg *cfg)
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1458  {
> c4d48a58f32c59 Cong Wang       2023-01-13  1459  	struct l2tp_net *pn = l2tp_pernet(net);
> c4d48a58f32c59 Cong Wang       2023-01-13  1460  	u32 tunnel_id = tunnel->tunnel_id;
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1461  	struct socket *sock;
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1462  	struct sock *sk;
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1463  	int ret;
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1464  
> c4d48a58f32c59 Cong Wang       2023-01-13  1465  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
> c4d48a58f32c59 Cong Wang       2023-01-13  1466  	ret = idr_alloc_u32(&pn->l2tp_tunnel_idr, NULL, &tunnel_id, tunnel_id,
> c4d48a58f32c59 Cong Wang       2023-01-13  1467  			    GFP_ATOMIC);
> c4d48a58f32c59 Cong Wang       2023-01-13  1468  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
> c4d48a58f32c59 Cong Wang       2023-01-13  1469  	if (ret)
> c4d48a58f32c59 Cong Wang       2023-01-13  1470  		return ret == -ENOSPC ? -EEXIST : ret;
> c4d48a58f32c59 Cong Wang       2023-01-13  1471  
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1472  	if (tunnel->fd < 0) {
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1473  		ret = l2tp_tunnel_sock_create(net, tunnel->tunnel_id,
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1474  					      tunnel->peer_tunnel_id, cfg,
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1475  					      &sock);
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1476  		if (ret < 0)
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1477  			goto err;
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1478  	} else {
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1479  		sock = sockfd_lookup(tunnel->fd, &ret);
> 6b9f34239b00e6 Guillaume Nault 2018-04-10  1480  		if (!sock)
> 6b9f34239b00e6 Guillaume Nault 2018-04-10 @1481  			goto err;
>                                                                         ^^^^^^^^^
> I don't know why this is showing up as a 3 week old warning when it
> looks like the code is from 2018...  Anyway, should this be an error
> path or a success path?

This is an error path.
But I don't understand this warning. Does it complain that 'ret' isn't
initialised before the 'goto err;' jump? (this is done by
sockfd_lookup() in case of error).


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
  2023-02-03 12:21 ` Guillaume Nault
@ 2023-02-13  5:30   ` Dan Carpenter
  2023-02-13 11:15     ` Guillaume Nault
  0 siblings, 1 reply; 5+ messages in thread
From: Dan Carpenter @ 2023-02-13  5:30 UTC (permalink / raw)
  To: Guillaume Nault; +Cc: oe-kbuild, Cong Wang, lkp, oe-kbuild-all, linux-kernel

On Fri, Feb 03, 2023 at 01:21:48PM +0100, Guillaume Nault wrote:
> On Fri, Feb 03, 2023 at 11:56:01AM +0300, Dan Carpenter wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head:   66a87fff1a87c260452f5a57123891ca5258c449
> > commit: c4d48a58f32c5972174a1d01c33b296fe378cce0 l2tp: convert l2tp_tunnel_list to idr
> > config: powerpc-randconfig-m031-20230202 (https://download.01.org/0day-ci/archive/20230203/202302031144.yY6UaRcD-lkp@intel.com/config)
> > compiler: powerpc-linux-gcc (GCC) 12.1.0
> > 
> > If you fix the issue, kindly add following tag where applicable
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Reported-by: Dan Carpenter <error27@gmail.com>
> > 
> > smatch warnings:
> > net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
> > 
> > vim +/ret +1481 net/l2tp/l2tp_core.c
> > 
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1456  int l2tp_tunnel_register(struct l2tp_tunnel *tunnel, struct net *net,
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1457  			 struct l2tp_tunnel_cfg *cfg)
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1458  {
> > c4d48a58f32c59 Cong Wang       2023-01-13  1459  	struct l2tp_net *pn = l2tp_pernet(net);
> > c4d48a58f32c59 Cong Wang       2023-01-13  1460  	u32 tunnel_id = tunnel->tunnel_id;
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1461  	struct socket *sock;
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1462  	struct sock *sk;
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1463  	int ret;
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1464  
> > c4d48a58f32c59 Cong Wang       2023-01-13  1465  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
> > c4d48a58f32c59 Cong Wang       2023-01-13  1466  	ret = idr_alloc_u32(&pn->l2tp_tunnel_idr, NULL, &tunnel_id, tunnel_id,
> > c4d48a58f32c59 Cong Wang       2023-01-13  1467  			    GFP_ATOMIC);
> > c4d48a58f32c59 Cong Wang       2023-01-13  1468  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
> > c4d48a58f32c59 Cong Wang       2023-01-13  1469  	if (ret)
> > c4d48a58f32c59 Cong Wang       2023-01-13  1470  		return ret == -ENOSPC ? -EEXIST : ret;
> > c4d48a58f32c59 Cong Wang       2023-01-13  1471  
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1472  	if (tunnel->fd < 0) {
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1473  		ret = l2tp_tunnel_sock_create(net, tunnel->tunnel_id,
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1474  					      tunnel->peer_tunnel_id, cfg,
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1475  					      &sock);
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1476  		if (ret < 0)
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1477  			goto err;
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1478  	} else {
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1479  		sock = sockfd_lookup(tunnel->fd, &ret);
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1480  		if (!sock)
> > 6b9f34239b00e6 Guillaume Nault 2018-04-10 @1481  			goto err;
> >                                                                         ^^^^^^^^^
> > I don't know why this is showing up as a 3 week old warning when it
> > looks like the code is from 2018...  Anyway, should this be an error
> > path or a success path?
> 
> This is an error path.
> But I don't understand this warning. Does it complain that 'ret' isn't
> initialised before the 'goto err;' jump? (this is done by
> sockfd_lookup() in case of error).

Or sorry, I didn't see the &ret.  Yes, Smatch thinks "ret" is zero here.
The kbuild-bot can't use the cross function database (building the DB
is too slow to scale).  So that's why the warning is printed.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
  2023-02-13  5:30   ` Dan Carpenter
@ 2023-02-13 11:15     ` Guillaume Nault
  0 siblings, 0 replies; 5+ messages in thread
From: Guillaume Nault @ 2023-02-13 11:15 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: oe-kbuild, Cong Wang, lkp, oe-kbuild-all, linux-kernel

On Mon, Feb 13, 2023 at 08:30:44AM +0300, Dan Carpenter wrote:
> On Fri, Feb 03, 2023 at 01:21:48PM +0100, Guillaume Nault wrote:
> > On Fri, Feb 03, 2023 at 11:56:01AM +0300, Dan Carpenter wrote:
> > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head:   66a87fff1a87c260452f5a57123891ca5258c449
> > > commit: c4d48a58f32c5972174a1d01c33b296fe378cce0 l2tp: convert l2tp_tunnel_list to idr
> > > config: powerpc-randconfig-m031-20230202 (https://download.01.org/0day-ci/archive/20230203/202302031144.yY6UaRcD-lkp@intel.com/config)
> > > compiler: powerpc-linux-gcc (GCC) 12.1.0
> > > 
> > > If you fix the issue, kindly add following tag where applicable
> > > | Reported-by: kernel test robot <lkp@intel.com>
> > > | Reported-by: Dan Carpenter <error27@gmail.com>
> > > 
> > > smatch warnings:
> > > net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret'
> > > 
> > > vim +/ret +1481 net/l2tp/l2tp_core.c
> > > 
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1456  int l2tp_tunnel_register(struct l2tp_tunnel *tunnel, struct net *net,
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1457  			 struct l2tp_tunnel_cfg *cfg)
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1458  {
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1459  	struct l2tp_net *pn = l2tp_pernet(net);
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1460  	u32 tunnel_id = tunnel->tunnel_id;
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1461  	struct socket *sock;
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1462  	struct sock *sk;
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1463  	int ret;
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1464  
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1465  	spin_lock_bh(&pn->l2tp_tunnel_idr_lock);
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1466  	ret = idr_alloc_u32(&pn->l2tp_tunnel_idr, NULL, &tunnel_id, tunnel_id,
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1467  			    GFP_ATOMIC);
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1468  	spin_unlock_bh(&pn->l2tp_tunnel_idr_lock);
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1469  	if (ret)
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1470  		return ret == -ENOSPC ? -EEXIST : ret;
> > > c4d48a58f32c59 Cong Wang       2023-01-13  1471  
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1472  	if (tunnel->fd < 0) {
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1473  		ret = l2tp_tunnel_sock_create(net, tunnel->tunnel_id,
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1474  					      tunnel->peer_tunnel_id, cfg,
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1475  					      &sock);
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1476  		if (ret < 0)
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1477  			goto err;
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1478  	} else {
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1479  		sock = sockfd_lookup(tunnel->fd, &ret);
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10  1480  		if (!sock)
> > > 6b9f34239b00e6 Guillaume Nault 2018-04-10 @1481  			goto err;
> > >                                                                         ^^^^^^^^^
> > > I don't know why this is showing up as a 3 week old warning when it
> > > looks like the code is from 2018...  Anyway, should this be an error
> > > path or a success path?
> > 
> > This is an error path.
> > But I don't understand this warning. Does it complain that 'ret' isn't
> > initialised before the 'goto err;' jump? (this is done by
> > sockfd_lookup() in case of error).
> 
> Or sorry, I didn't see the &ret.

No problem.

> Yes, Smatch thinks "ret" is zero here.
> The kbuild-bot can't use the cross function database (building the DB
> is too slow to scale).  So that's why the warning is printed.

Okay, thanks for the explanations.

> regards,
> dan carpenter
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-02-13 11:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-03  3:49 net/l2tp/l2tp_core.c:1481 l2tp_tunnel_register() warn: missing error code 'ret' kernel test robot
2023-02-03  8:56 ` Dan Carpenter
2023-02-03 12:21 ` Guillaume Nault
2023-02-13  5:30   ` Dan Carpenter
2023-02-13 11:15     ` Guillaume Nault

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).