All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [smfrench-smb3:for-next 7/12] fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect'.
Date: Fri, 31 Dec 2021 07:40:48 +0800	[thread overview]
Message-ID: <202112310745.OYSjA6DO-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 9974 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Steve French <stfrench@microsoft.com>

tree:   git://github.com/smfrench/smb3-kernel.git for-next
head:   3fe0b5a99f6e0726eb88cee160ee96b002d2a60d
commit: 5ef98b085643f129a3e5a818b6b539f97e038946 [7/12] cifs: take cifs_tcp_ses_lock for status checks
:::::: branch date: 6 hours ago
:::::: commit date: 19 hours ago
config: i386-randconfig-m021-20211230 (https://download.01.org/0day-ci/archive/20211231/202112310745.OYSjA6DO-lkp(a)intel.com/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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect'.

vim +/reconnect +229 fs/cifs/smb1ops.c

a891f0f895f4a7 Pavel Shilovsky            2012-05-23  139  
88257360605f93 Pavel Shilovsky            2012-05-23  140  /*
88257360605f93 Pavel Shilovsky            2012-05-23  141   * Find a free multiplex id (SMB mid). Otherwise there could be
88257360605f93 Pavel Shilovsky            2012-05-23  142   * mid collisions which might cause problems, demultiplexing the
88257360605f93 Pavel Shilovsky            2012-05-23  143   * wrong response to this request. Multiplex ids could collide if
88257360605f93 Pavel Shilovsky            2012-05-23  144   * one of a series requests takes much longer than the others, or
88257360605f93 Pavel Shilovsky            2012-05-23  145   * if a very large number of long lived requests (byte range
88257360605f93 Pavel Shilovsky            2012-05-23  146   * locks or FindNotify requests) are pending. No more than
88257360605f93 Pavel Shilovsky            2012-05-23  147   * 64K-1 requests can be outstanding at one time. If no
88257360605f93 Pavel Shilovsky            2012-05-23  148   * mids are available, return zero. A future optimization
88257360605f93 Pavel Shilovsky            2012-05-23  149   * could make the combination of mids and uid the key we use
88257360605f93 Pavel Shilovsky            2012-05-23  150   * to demultiplex on (rather than mid alone).
88257360605f93 Pavel Shilovsky            2012-05-23  151   * In addition to the above check, the cifs demultiplex
88257360605f93 Pavel Shilovsky            2012-05-23  152   * code already used the command code as a secondary
88257360605f93 Pavel Shilovsky            2012-05-23  153   * check of the frame and if signing is negotiated the
88257360605f93 Pavel Shilovsky            2012-05-23  154   * response would be discarded if the mid were the same
88257360605f93 Pavel Shilovsky            2012-05-23  155   * but the signature was wrong. Since the mid is not put in the
88257360605f93 Pavel Shilovsky            2012-05-23  156   * pending queue until later (when it is about to be dispatched)
88257360605f93 Pavel Shilovsky            2012-05-23  157   * we do have to limit the number of outstanding requests
88257360605f93 Pavel Shilovsky            2012-05-23  158   * to somewhat less than 64K-1 although it is hard to imagine
88257360605f93 Pavel Shilovsky            2012-05-23  159   * so many threads being in the vfs at one time.
88257360605f93 Pavel Shilovsky            2012-05-23  160   */
88257360605f93 Pavel Shilovsky            2012-05-23  161  static __u64
88257360605f93 Pavel Shilovsky            2012-05-23  162  cifs_get_next_mid(struct TCP_Server_Info *server)
88257360605f93 Pavel Shilovsky            2012-05-23  163  {
88257360605f93 Pavel Shilovsky            2012-05-23  164  	__u64 mid = 0;
88257360605f93 Pavel Shilovsky            2012-05-23  165  	__u16 last_mid, cur_mid;
5ef98b085643f1 Shyam Prasad N             2021-07-19  166  	bool collision, reconnect;
88257360605f93 Pavel Shilovsky            2012-05-23  167  
88257360605f93 Pavel Shilovsky            2012-05-23  168  	spin_lock(&GlobalMid_Lock);
88257360605f93 Pavel Shilovsky            2012-05-23  169  
88257360605f93 Pavel Shilovsky            2012-05-23  170  	/* mid is 16 bit only for CIFS/SMB */
88257360605f93 Pavel Shilovsky            2012-05-23  171  	cur_mid = (__u16)((server->CurrentMid) & 0xffff);
88257360605f93 Pavel Shilovsky            2012-05-23  172  	/* we do not want to loop forever */
88257360605f93 Pavel Shilovsky            2012-05-23  173  	last_mid = cur_mid;
88257360605f93 Pavel Shilovsky            2012-05-23  174  	cur_mid++;
03d9a9fe3f3aec Roberto Bergantinos Corpas 2019-10-14  175  	/* avoid 0xFFFF MID */
03d9a9fe3f3aec Roberto Bergantinos Corpas 2019-10-14  176  	if (cur_mid == 0xffff)
03d9a9fe3f3aec Roberto Bergantinos Corpas 2019-10-14  177  		cur_mid++;
88257360605f93 Pavel Shilovsky            2012-05-23  178  
88257360605f93 Pavel Shilovsky            2012-05-23  179  	/*
88257360605f93 Pavel Shilovsky            2012-05-23  180  	 * This nested loop looks more expensive than it is.
88257360605f93 Pavel Shilovsky            2012-05-23  181  	 * In practice the list of pending requests is short,
88257360605f93 Pavel Shilovsky            2012-05-23  182  	 * fewer than 50, and the mids are likely to be unique
88257360605f93 Pavel Shilovsky            2012-05-23  183  	 * on the first pass through the loop unless some request
88257360605f93 Pavel Shilovsky            2012-05-23  184  	 * takes longer than the 64 thousand requests before it
88257360605f93 Pavel Shilovsky            2012-05-23  185  	 * (and it would also have to have been a request that
88257360605f93 Pavel Shilovsky            2012-05-23  186  	 * did not time out).
88257360605f93 Pavel Shilovsky            2012-05-23  187  	 */
88257360605f93 Pavel Shilovsky            2012-05-23  188  	while (cur_mid != last_mid) {
88257360605f93 Pavel Shilovsky            2012-05-23  189  		struct mid_q_entry *mid_entry;
88257360605f93 Pavel Shilovsky            2012-05-23  190  		unsigned int num_mids;
88257360605f93 Pavel Shilovsky            2012-05-23  191  
88257360605f93 Pavel Shilovsky            2012-05-23  192  		collision = false;
88257360605f93 Pavel Shilovsky            2012-05-23  193  		if (cur_mid == 0)
88257360605f93 Pavel Shilovsky            2012-05-23  194  			cur_mid++;
88257360605f93 Pavel Shilovsky            2012-05-23  195  
88257360605f93 Pavel Shilovsky            2012-05-23  196  		num_mids = 0;
88257360605f93 Pavel Shilovsky            2012-05-23  197  		list_for_each_entry(mid_entry, &server->pending_mid_q, qhead) {
88257360605f93 Pavel Shilovsky            2012-05-23  198  			++num_mids;
88257360605f93 Pavel Shilovsky            2012-05-23  199  			if (mid_entry->mid == cur_mid &&
88257360605f93 Pavel Shilovsky            2012-05-23  200  			    mid_entry->mid_state == MID_REQUEST_SUBMITTED) {
88257360605f93 Pavel Shilovsky            2012-05-23  201  				/* This mid is in use, try a different one */
88257360605f93 Pavel Shilovsky            2012-05-23  202  				collision = true;
88257360605f93 Pavel Shilovsky            2012-05-23  203  				break;
88257360605f93 Pavel Shilovsky            2012-05-23  204  			}
88257360605f93 Pavel Shilovsky            2012-05-23  205  		}
88257360605f93 Pavel Shilovsky            2012-05-23  206  
88257360605f93 Pavel Shilovsky            2012-05-23  207  		/*
88257360605f93 Pavel Shilovsky            2012-05-23  208  		 * if we have more than 32k mids in the list, then something
88257360605f93 Pavel Shilovsky            2012-05-23  209  		 * is very wrong. Possibly a local user is trying to DoS the
88257360605f93 Pavel Shilovsky            2012-05-23  210  		 * box by issuing long-running calls and SIGKILL'ing them. If
88257360605f93 Pavel Shilovsky            2012-05-23  211  		 * we get to 2^16 mids then we're in big trouble as this
88257360605f93 Pavel Shilovsky            2012-05-23  212  		 * function could loop forever.
88257360605f93 Pavel Shilovsky            2012-05-23  213  		 *
88257360605f93 Pavel Shilovsky            2012-05-23  214  		 * Go ahead and assign out the mid in this situation, but force
88257360605f93 Pavel Shilovsky            2012-05-23  215  		 * an eventual reconnect to clean out the pending_mid_q.
88257360605f93 Pavel Shilovsky            2012-05-23  216  		 */
88257360605f93 Pavel Shilovsky            2012-05-23  217  		if (num_mids > 32768)
5ef98b085643f1 Shyam Prasad N             2021-07-19  218  			reconnect = true;
88257360605f93 Pavel Shilovsky            2012-05-23  219  
88257360605f93 Pavel Shilovsky            2012-05-23  220  		if (!collision) {
88257360605f93 Pavel Shilovsky            2012-05-23  221  			mid = (__u64)cur_mid;
88257360605f93 Pavel Shilovsky            2012-05-23  222  			server->CurrentMid = mid;
88257360605f93 Pavel Shilovsky            2012-05-23  223  			break;
88257360605f93 Pavel Shilovsky            2012-05-23  224  		}
88257360605f93 Pavel Shilovsky            2012-05-23  225  		cur_mid++;
88257360605f93 Pavel Shilovsky            2012-05-23  226  	}
88257360605f93 Pavel Shilovsky            2012-05-23  227  	spin_unlock(&GlobalMid_Lock);
5ef98b085643f1 Shyam Prasad N             2021-07-19  228  
5ef98b085643f1 Shyam Prasad N             2021-07-19 @229  	if (reconnect) {
5ef98b085643f1 Shyam Prasad N             2021-07-19  230  		spin_lock(&cifs_tcp_ses_lock);
5ef98b085643f1 Shyam Prasad N             2021-07-19  231  		server->tcpStatus = CifsNeedReconnect;
5ef98b085643f1 Shyam Prasad N             2021-07-19  232  		spin_unlock(&cifs_tcp_ses_lock);
5ef98b085643f1 Shyam Prasad N             2021-07-19  233  	}
5ef98b085643f1 Shyam Prasad N             2021-07-19  234  
88257360605f93 Pavel Shilovsky            2012-05-23  235  	return mid;
88257360605f93 Pavel Shilovsky            2012-05-23  236  }
88257360605f93 Pavel Shilovsky            2012-05-23  237  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [smfrench-smb3:for-next 7/12] fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect'.
Date: Thu, 06 Jan 2022 18:10:38 +0300	[thread overview]
Message-ID: <202112310745.OYSjA6DO-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 7364 bytes --]

tree:   git://github.com/smfrench/smb3-kernel.git for-next
head:   3fe0b5a99f6e0726eb88cee160ee96b002d2a60d
commit: 5ef98b085643f129a3e5a818b6b539f97e038946 [7/12] cifs: take cifs_tcp_ses_lock for status checks
config: i386-randconfig-m021-20211230 (https://download.01.org/0day-ci/archive/20211231/202112310745.OYSjA6DO-lkp(a)intel.com/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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect'.

vim +/reconnect +229 fs/cifs/smb1ops.c

88257360605f93 Pavel Shilovsky            2012-05-23  161  static __u64
88257360605f93 Pavel Shilovsky            2012-05-23  162  cifs_get_next_mid(struct TCP_Server_Info *server)
88257360605f93 Pavel Shilovsky            2012-05-23  163  {
88257360605f93 Pavel Shilovsky            2012-05-23  164  	__u64 mid = 0;
88257360605f93 Pavel Shilovsky            2012-05-23  165  	__u16 last_mid, cur_mid;
5ef98b085643f1 Shyam Prasad N             2021-07-19  166  	bool collision, reconnect;

"reconnect" is never set to false.

88257360605f93 Pavel Shilovsky            2012-05-23  167  
88257360605f93 Pavel Shilovsky            2012-05-23  168  	spin_lock(&GlobalMid_Lock);
88257360605f93 Pavel Shilovsky            2012-05-23  169  
88257360605f93 Pavel Shilovsky            2012-05-23  170  	/* mid is 16 bit only for CIFS/SMB */
88257360605f93 Pavel Shilovsky            2012-05-23  171  	cur_mid = (__u16)((server->CurrentMid) & 0xffff);
88257360605f93 Pavel Shilovsky            2012-05-23  172  	/* we do not want to loop forever */
88257360605f93 Pavel Shilovsky            2012-05-23  173  	last_mid = cur_mid;
88257360605f93 Pavel Shilovsky            2012-05-23  174  	cur_mid++;
03d9a9fe3f3aec Roberto Bergantinos Corpas 2019-10-14  175  	/* avoid 0xFFFF MID */
03d9a9fe3f3aec Roberto Bergantinos Corpas 2019-10-14  176  	if (cur_mid == 0xffff)
03d9a9fe3f3aec Roberto Bergantinos Corpas 2019-10-14  177  		cur_mid++;
88257360605f93 Pavel Shilovsky            2012-05-23  178  
88257360605f93 Pavel Shilovsky            2012-05-23  179  	/*
88257360605f93 Pavel Shilovsky            2012-05-23  180  	 * This nested loop looks more expensive than it is.
88257360605f93 Pavel Shilovsky            2012-05-23  181  	 * In practice the list of pending requests is short,
88257360605f93 Pavel Shilovsky            2012-05-23  182  	 * fewer than 50, and the mids are likely to be unique
88257360605f93 Pavel Shilovsky            2012-05-23  183  	 * on the first pass through the loop unless some request
88257360605f93 Pavel Shilovsky            2012-05-23  184  	 * takes longer than the 64 thousand requests before it
88257360605f93 Pavel Shilovsky            2012-05-23  185  	 * (and it would also have to have been a request that
88257360605f93 Pavel Shilovsky            2012-05-23  186  	 * did not time out).
88257360605f93 Pavel Shilovsky            2012-05-23  187  	 */
88257360605f93 Pavel Shilovsky            2012-05-23  188  	while (cur_mid != last_mid) {
88257360605f93 Pavel Shilovsky            2012-05-23  189  		struct mid_q_entry *mid_entry;
88257360605f93 Pavel Shilovsky            2012-05-23  190  		unsigned int num_mids;
88257360605f93 Pavel Shilovsky            2012-05-23  191  
88257360605f93 Pavel Shilovsky            2012-05-23  192  		collision = false;
88257360605f93 Pavel Shilovsky            2012-05-23  193  		if (cur_mid == 0)
88257360605f93 Pavel Shilovsky            2012-05-23  194  			cur_mid++;
88257360605f93 Pavel Shilovsky            2012-05-23  195  
88257360605f93 Pavel Shilovsky            2012-05-23  196  		num_mids = 0;
88257360605f93 Pavel Shilovsky            2012-05-23  197  		list_for_each_entry(mid_entry, &server->pending_mid_q, qhead) {
88257360605f93 Pavel Shilovsky            2012-05-23  198  			++num_mids;
88257360605f93 Pavel Shilovsky            2012-05-23  199  			if (mid_entry->mid == cur_mid &&
88257360605f93 Pavel Shilovsky            2012-05-23  200  			    mid_entry->mid_state == MID_REQUEST_SUBMITTED) {
88257360605f93 Pavel Shilovsky            2012-05-23  201  				/* This mid is in use, try a different one */
88257360605f93 Pavel Shilovsky            2012-05-23  202  				collision = true;
88257360605f93 Pavel Shilovsky            2012-05-23  203  				break;
88257360605f93 Pavel Shilovsky            2012-05-23  204  			}
88257360605f93 Pavel Shilovsky            2012-05-23  205  		}
88257360605f93 Pavel Shilovsky            2012-05-23  206  
88257360605f93 Pavel Shilovsky            2012-05-23  207  		/*
88257360605f93 Pavel Shilovsky            2012-05-23  208  		 * if we have more than 32k mids in the list, then something
88257360605f93 Pavel Shilovsky            2012-05-23  209  		 * is very wrong. Possibly a local user is trying to DoS the
88257360605f93 Pavel Shilovsky            2012-05-23  210  		 * box by issuing long-running calls and SIGKILL'ing them. If
88257360605f93 Pavel Shilovsky            2012-05-23  211  		 * we get to 2^16 mids then we're in big trouble as this
88257360605f93 Pavel Shilovsky            2012-05-23  212  		 * function could loop forever.
88257360605f93 Pavel Shilovsky            2012-05-23  213  		 *
88257360605f93 Pavel Shilovsky            2012-05-23  214  		 * Go ahead and assign out the mid in this situation, but force
88257360605f93 Pavel Shilovsky            2012-05-23  215  		 * an eventual reconnect to clean out the pending_mid_q.
88257360605f93 Pavel Shilovsky            2012-05-23  216  		 */
88257360605f93 Pavel Shilovsky            2012-05-23  217  		if (num_mids > 32768)
5ef98b085643f1 Shyam Prasad N             2021-07-19  218  			reconnect = true;
88257360605f93 Pavel Shilovsky            2012-05-23  219  
88257360605f93 Pavel Shilovsky            2012-05-23  220  		if (!collision) {
88257360605f93 Pavel Shilovsky            2012-05-23  221  			mid = (__u64)cur_mid;
88257360605f93 Pavel Shilovsky            2012-05-23  222  			server->CurrentMid = mid;
88257360605f93 Pavel Shilovsky            2012-05-23  223  			break;
88257360605f93 Pavel Shilovsky            2012-05-23  224  		}
88257360605f93 Pavel Shilovsky            2012-05-23  225  		cur_mid++;
88257360605f93 Pavel Shilovsky            2012-05-23  226  	}
88257360605f93 Pavel Shilovsky            2012-05-23  227  	spin_unlock(&GlobalMid_Lock);
5ef98b085643f1 Shyam Prasad N             2021-07-19  228  
5ef98b085643f1 Shyam Prasad N             2021-07-19 @229  	if (reconnect) {
5ef98b085643f1 Shyam Prasad N             2021-07-19  230  		spin_lock(&cifs_tcp_ses_lock);
5ef98b085643f1 Shyam Prasad N             2021-07-19  231  		server->tcpStatus = CifsNeedReconnect;
5ef98b085643f1 Shyam Prasad N             2021-07-19  232  		spin_unlock(&cifs_tcp_ses_lock);
5ef98b085643f1 Shyam Prasad N             2021-07-19  233  	}
5ef98b085643f1 Shyam Prasad N             2021-07-19  234  
88257360605f93 Pavel Shilovsky            2012-05-23  235  	return mid;
88257360605f93 Pavel Shilovsky            2012-05-23  236  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2021-12-30 23:40 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-30 23:40 kernel test robot [this message]
2022-01-06 15:10 ` [smfrench-smb3:for-next 7/12] fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect' Dan Carpenter

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=202112310745.OYSjA6DO-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /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.