All of lore.kernel.org
 help / color / mirror / Atom feed
* [smfrench-smb3:for-next 7/12] fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect'.
@ 2022-01-06 15:10 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-12-30 23:40 UTC (permalink / raw)
  To: kbuild

[-- 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

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

* [smfrench-smb3:for-next 7/12] fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect'.
@ 2022-01-06 15:10 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2022-01-06 15:10 UTC (permalink / raw)
  To: kbuild-all

[-- 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

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

end of thread, other threads:[~2022-01-06 15:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-30 23:40 [smfrench-smb3:for-next 7/12] fs/cifs/smb1ops.c:229 cifs_get_next_mid() error: uninitialized symbol 'reconnect' kernel test robot
2022-01-06 15:10 ` Dan Carpenter

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.