All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: fs/smb/client/connect.c:3360 generic_ip_connect() error: we previously assumed 'server->ssocket' could be null (see line 3347)
Date: Mon, 23 Mar 2026 02:12:11 +0800	[thread overview]
Message-ID: <202603230251.8scooaYz-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Kuniyuki Iwashima <kuniyu@amazon.com>
CC: Steve French <stfrench@microsoft.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   113ae7b4decc6c2d95bdbbe52e615a0137ef7f9f
commit: 95d2b9f693ff2a1180a23d7d59acc0c4e72f4c41 Revert "smb: client: fix TCP timers deadlock after rmmod"
date:   11 months ago
:::::: branch date: 26 hours ago
:::::: commit date: 11 months ago
config: hexagon-randconfig-r072-20260322 (https://download.01.org/0day-ci/archive/20260323/202603230251.8scooaYz-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
smatch: v0.5.0-9004-gb810ac53

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603230251.8scooaYz-lkp@intel.com/

smatch warnings:
fs/smb/client/connect.c:3360 generic_ip_connect() error: we previously assumed 'server->ssocket' could be null (see line 3347)

vim +3360 fs/smb/client/connect.c

^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3317  
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3318  static int
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3319  generic_ip_connect(struct TCP_Server_Info *server)
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3320  {
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3321  	struct sockaddr *saddr;
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3322  	struct socket *socket;
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3323  	int slen, sfamily;
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3324  	__be16 sport;
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3325  	int rc = 0;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3326  
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3327  	saddr = (struct sockaddr *) &server->dstaddr;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3328  
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3329  	if (server->dstaddr.ss_family == AF_INET6) {
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3330  		struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)&server->dstaddr;
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3331  
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3332  		sport = ipv6->sin6_port;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3333  		slen = sizeof(struct sockaddr_in6);
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3334  		sfamily = AF_INET6;
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3335  		cifs_dbg(FYI, "%s: connecting to [%pI6]:%d\n", __func__, &ipv6->sin6_addr,
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3336  				ntohs(sport));
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3337  	} else {
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3338  		struct sockaddr_in *ipv4 = (struct sockaddr_in *)&server->dstaddr;
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3339  
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3340  		sport = ipv4->sin_port;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3341  		slen = sizeof(struct sockaddr_in);
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3342  		sfamily = AF_INET;
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3343  		cifs_dbg(FYI, "%s: connecting to %pI4:%d\n", __func__, &ipv4->sin_addr,
def6e1dc178168 fs/cifs/connect.c       Samuel Cabrero         2020-10-16  3344  				ntohs(sport));
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3345  	}
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3346  
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19 @3347  	if (server->ssocket) {
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3348  		socket = server->ssocket;
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3349  	} else {
ef7134c7fc48e1 fs/smb/client/connect.c Kuniyuki Iwashima      2024-11-02  3350  		struct net *net = cifs_net_ns(server);
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3351  		struct sock *sk;
ef7134c7fc48e1 fs/smb/client/connect.c Kuniyuki Iwashima      2024-11-02  3352  
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3353  		rc = __sock_create(net, sfamily, SOCK_STREAM,
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3354  				   IPPROTO_TCP, &server->ssocket, 1);
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3355  		if (rc < 0) {
afe6f65353b644 fs/cifs/connect.c       Ronnie Sahlberg        2019-08-28  3356  			cifs_server_dbg(VFS, "Error %d creating socket\n", rc);
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3357  			return rc;
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3358  		}
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3359  
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02 @3360  		sk = server->ssocket->sk;
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3361  		__netns_tracker_free(net, &sk->ns_tracker, false);
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3362  		sk->sk_net_refcnt = 1;
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3363  		get_net_track(net, &sk->ns_tracker, GFP_KERNEL);
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3364  		sock_inuse_add(net, 1);
ef7134c7fc48e1 fs/smb/client/connect.c Kuniyuki Iwashima      2024-11-02  3365  
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3366  		/* BB other socket options to set KEEPALIVE, NODELAY? */
f96637be081141 fs/cifs/connect.c       Joe Perches            2013-05-04  3367  		cifs_dbg(FYI, "Socket created\n");
f0b6a834a8f0d2 fs/smb/client/connect.c Paulo Alcantara        2023-06-19  3368  		socket = server->ssocket;
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3369  		socket->sk->sk_allocation = GFP_NOFS;
98123866fcf3fe fs/cifs/connect.c       Benjamin Coddington    2022-12-16  3370  		socket->sk->sk_use_task_frag = false;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3371  		if (sfamily == AF_INET6)
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3372  			cifs_reclassify_socket6(socket);
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3373  		else
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3374  			cifs_reclassify_socket4(socket);
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3375  	}
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3376  
3eb9a8893a76cf fs/cifs/connect.c       Ben Greear             2010-09-01  3377  	rc = bind_socket(server);
95d2b9f693ff2a fs/smb/client/connect.c Kuniyuki Iwashima      2025-04-02  3378  	if (rc < 0)
3eb9a8893a76cf fs/cifs/connect.c       Ben Greear             2010-09-01  3379  		return rc;
3eb9a8893a76cf fs/cifs/connect.c       Ben Greear             2010-09-01  3380  
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3381  	/*
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3382  	 * Eventually check for other socket options to change from
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3383  	 * the default. sock_setsockopt not used because it expects
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3384  	 * user space buffer
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3385  	 */
d5c5605c27c92d fs/cifs/connect.c       Jeff Layton            2008-12-01  3386  	socket->sk->sk_rcvtimeo = 7 * HZ;
da505c386c9f99 fs/cifs/connect.c       Steve French           2009-01-19  3387  	socket->sk->sk_sndtimeo = 5 * HZ;
6a5fa2362b628e fs/cifs/connect.c       Steve French           2010-01-01  3388  
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3389  	/* make the bufsizes depend on wsize/rsize and max requests */
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3390  	if (server->noautotune) {
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3391  		if (socket->sk->sk_sndbuf < (200 * 1024))
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3392  			socket->sk->sk_sndbuf = 200 * 1024;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3393  		if (socket->sk->sk_rcvbuf < (140 * 1024))
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3394  			socket->sk->sk_rcvbuf = 140 * 1024;
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3395  	}
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3396  
12abc5ee7873a0 fs/cifs/connect.c       Christoph Hellwig      2020-05-28  3397  	if (server->tcp_nodelay)
12abc5ee7873a0 fs/cifs/connect.c       Christoph Hellwig      2020-05-28  3398  		tcp_sock_set_nodelay(socket->sk);
6a5fa2362b628e fs/cifs/connect.c       Steve French           2010-01-01  3399  
f96637be081141 fs/cifs/connect.c       Joe Perches            2013-05-04  3400  	cifs_dbg(FYI, "sndbuf %d rcvbuf %d rcvtimeo 0x%lx\n",
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3401  		 socket->sk->sk_sndbuf,
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3402  		 socket->sk->sk_rcvbuf, socket->sk->sk_rcvtimeo);
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3403  
cedc019b9f260f fs/smb/client/connect.c Jordan Rife            2023-10-03  3404  	rc = kernel_connect(socket, saddr, slen,
8eecd1c2e5bc73 fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-07-16  3405) 			    server->noblockcnt ? O_NONBLOCK : 0);
d532cc7efdfd7b fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-10-10  3406) 	/*
d532cc7efdfd7b fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-10-10  3407) 	 * When mounting SMB root file systems, we do not want to block in
d532cc7efdfd7b fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-10-10  3408) 	 * connect. Otherwise bail out and then let cifs_reconnect() perform
d532cc7efdfd7b fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-10-10  3409) 	 * reconnect failover - if possible.
d532cc7efdfd7b fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-10-10  3410) 	 */
d532cc7efdfd7b fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-10-10  3411) 	if (server->noblockcnt && rc == -EINPROGRESS)
8eecd1c2e5bc73 fs/cifs/connect.c       Paulo Alcantara (SUSE  2019-07-16  3412) 		rc = 0;
ee1b3ea9e6171d fs/cifs/connect.c       Jeff Layton            2011-06-21  3413  	if (rc < 0) {
f96637be081141 fs/cifs/connect.c       Joe Perches            2013-05-04  3414  		cifs_dbg(FYI, "Error %d connecting to server\n", rc);
d7171cd1acf70e fs/cifs/connect.c       Steve French           2021-11-04  3415  		trace_smb3_connect_err(server->hostname, server->conn_id, &server->dstaddr, rc);
ee1b3ea9e6171d fs/cifs/connect.c       Jeff Layton            2011-06-21  3416  		sock_release(socket);
ee1b3ea9e6171d fs/cifs/connect.c       Jeff Layton            2011-06-21  3417  		server->ssocket = NULL;
ee1b3ea9e6171d fs/cifs/connect.c       Jeff Layton            2011-06-21  3418  		return rc;
ee1b3ea9e6171d fs/cifs/connect.c       Jeff Layton            2011-06-21  3419  	}
d7171cd1acf70e fs/cifs/connect.c       Steve French           2021-11-04  3420  	trace_smb3_connect_done(server->hostname, server->conn_id, &server->dstaddr);
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3421  
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3422  	/*
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3423  	 * Establish RFC1001 NetBIOS session when it was explicitly requested
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3424  	 * by mount option -o nbsessinit, or when connecting to default RFC1001
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3425  	 * server port (139) and it was not explicitly disabled by mount option
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3426  	 * -o nonbsessinit.
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3427  	 */
665e18794804f8 fs/smb/client/connect.c Pali Rohár             2024-10-28  3428  	if (server->with_rfc1001 ||
665e18794804f8 fs/smb/client/connect.c Pali Rohár             2024-10-28  3429  	    server->rfc1001_sessinit == 1 ||
7d14dd683b1b00 fs/smb/client/connect.c Pali Rohár             2024-10-27  3430  	    (server->rfc1001_sessinit == -1 && sport == htons(RFC1001_PORT)))
a9f1b85e5ba805 fs/cifs/connect.c       Pavel Shilovsky        2010-12-13  3431  		rc = ip_rfc1001_connect(server);
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3432  
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3433  	return rc;
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3434  }
^1da177e4c3f41 fs/cifs/connect.c       Linus Torvalds         2005-04-16  3435  

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

                 reply	other threads:[~2026-03-22 18:13 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202603230251.8scooaYz-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.