All of lore.kernel.org
 help / color / mirror / Atom feed
* [martinetd-linux:9p-test 6/6] net/9p/client.c:823 p9_client_handle_async() error: double unlocked 'c->lock' (orig line 813)
@ 2020-06-25 19:58 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-06-25 19:58 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: Dominique Martinet <dominique.martinet@cea.fr>
CC: Tomas Bortoli <tomasbortoli@gmail.com>

tree:   https://github.com/martinetd/linux.git 9p-test
head:   62cca2875aa01fc318835a838a09e4fc17ecd117
commit: 62cca2875aa01fc318835a838a09e4fc17ecd117 [6/6] 9p/net: make flush asynchronous
:::::: branch date: 9 hours ago
:::::: commit date: 9 hours ago
config: h8300-randconfig-m031-20200624 (attached as .config)
compiler: h8300-linux-gcc (GCC) 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:
net/9p/client.c:823 p9_client_handle_async() error: double unlocked 'c->lock' (orig line 813)

# https://github.com/martinetd/linux/commit/62cca2875aa01fc318835a838a09e4fc17ecd117
git remote add martinetd-linux https://github.com/martinetd/linux.git
git remote update martinetd-linux
git checkout 62cca2875aa01fc318835a838a09e4fc17ecd117
vim +823 net/9p/client.c

62cca2875aa01f Dominique Martinet 2018-11-17  777  
3b8a90225b4326 Dominique Martinet 2018-11-16  778  static void p9_client_handle_async(struct p9_client *c, bool free_all)
3b8a90225b4326 Dominique Martinet 2018-11-16  779  {
3b8a90225b4326 Dominique Martinet 2018-11-16  780  	struct p9_req_t *req, *nreq;
3b8a90225b4326 Dominique Martinet 2018-11-16  781  
3b8a90225b4326 Dominique Martinet 2018-11-16  782  	/* it's ok to miss some async replies here, do a quick check without
3b8a90225b4326 Dominique Martinet 2018-11-16  783  	 * lock first unless called with free_all
3b8a90225b4326 Dominique Martinet 2018-11-16  784  	 */
3b8a90225b4326 Dominique Martinet 2018-11-16  785  	if (!free_all && list_empty(&c->async_req_list))
3b8a90225b4326 Dominique Martinet 2018-11-16  786  		return;
3b8a90225b4326 Dominique Martinet 2018-11-16  787  
3b8a90225b4326 Dominique Martinet 2018-11-16  788  	spin_lock_irq(&c->async_req_lock);
3b8a90225b4326 Dominique Martinet 2018-11-16  789  	list_for_each_entry_safe(req, nreq, &c->async_req_list, async_list) {
3b8a90225b4326 Dominique Martinet 2018-11-16  790  		if (free_all && req->status < REQ_STATUS_RCVD) {
3b8a90225b4326 Dominique Martinet 2018-11-16  791  			p9_debug(P9_DEBUG_ERROR,
3b8a90225b4326 Dominique Martinet 2018-11-16  792  				 "final async handler found req tag %d type %d status %d\n",
3b8a90225b4326 Dominique Martinet 2018-11-16  793  				 req->tc.tag, req->tc.id, req->status);
3b8a90225b4326 Dominique Martinet 2018-11-16  794  			if (c->trans_mod->cancelled)
3b8a90225b4326 Dominique Martinet 2018-11-16  795  				c->trans_mod->cancelled(c, req);
3b8a90225b4326 Dominique Martinet 2018-11-16  796  			/* won't receive reply now */
3b8a90225b4326 Dominique Martinet 2018-11-16  797  			p9_req_put(req);
3b8a90225b4326 Dominique Martinet 2018-11-16  798  		}
3b8a90225b4326 Dominique Martinet 2018-11-16  799  		if (free_all || req->status >= REQ_STATUS_RCVD) {
3b8a90225b4326 Dominique Martinet 2018-11-16  800  			/* Put old refs whatever reqs actually returned */
62cca2875aa01f Dominique Martinet 2018-11-17  801  			if (req->tc.id == P9_TFLUSH) {
62cca2875aa01f Dominique Martinet 2018-11-17  802  				p9_debug(P9_DEBUG_MUX,
62cca2875aa01f Dominique Martinet 2018-11-17  803  					 "flushing oldreq tag %d status %d, flush_req tag %d\n",
62cca2875aa01f Dominique Martinet 2018-11-17  804  					 req->flushed_req->tc.tag,
62cca2875aa01f Dominique Martinet 2018-11-17  805  					 req->flushed_req->status,
62cca2875aa01f Dominique Martinet 2018-11-17  806  					 req->tc.tag);
62cca2875aa01f Dominique Martinet 2018-11-17  807  				if (req->flushed_req->status < REQ_STATUS_RCVD) {
62cca2875aa01f Dominique Martinet 2018-11-17  808  					/* won't receive reply now */
62cca2875aa01f Dominique Martinet 2018-11-17  809  					if (c->trans_mod->cancelled)
62cca2875aa01f Dominique Martinet 2018-11-17  810  						c->trans_mod->cancelled(c, req);
62cca2875aa01f Dominique Martinet 2018-11-17  811  					p9_req_put(req->flushed_req);
62cca2875aa01f Dominique Martinet 2018-11-17  812  				}
62cca2875aa01f Dominique Martinet 2018-11-17 @813  				if (!p9_tag_remove(c, req->flushed_req))
62cca2875aa01f Dominique Martinet 2018-11-17  814  					p9_debug(P9_DEBUG_ERROR,
62cca2875aa01f Dominique Martinet 2018-11-17  815  						 "oldreq tag %d status %d still has ref\n",
62cca2875aa01f Dominique Martinet 2018-11-17  816  						 req->flushed_req->tc.tag,
62cca2875aa01f Dominique Martinet 2018-11-17  817  						 req->flushed_req->status);
62cca2875aa01f Dominique Martinet 2018-11-17  818  			}
b1d37de6821358 Dominique Martinet 2018-11-17  819  			if (req->tc.id == P9_TCLUNK) {
b1d37de6821358 Dominique Martinet 2018-11-17  820  				p9_fid_destroy(req->clunked_fid);
b1d37de6821358 Dominique Martinet 2018-11-17  821  			}
3b8a90225b4326 Dominique Martinet 2018-11-16  822  			list_del(&req->async_list);
3b8a90225b4326 Dominique Martinet 2018-11-16 @823  			p9_tag_remove(c, req);
3b8a90225b4326 Dominique Martinet 2018-11-16  824  		}
3b8a90225b4326 Dominique Martinet 2018-11-16  825  	}
3b8a90225b4326 Dominique Martinet 2018-11-16  826  	spin_unlock_irq(&c->async_req_lock);
3b8a90225b4326 Dominique Martinet 2018-11-16  827  }
3b8a90225b4326 Dominique Martinet 2018-11-16  828  

:::::: The code at line 823 was first introduced by commit
:::::: 3b8a90225b4326032b6492e1b04db4f9ecf251ef 9p/net: implement asynchronous rpc

:::::: TO: Dominique Martinet <dominique.martinet@cea.fr>
:::::: CC: Dominique Martinet <dominique.martinet@cea.fr>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 29729 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-25 19:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-25 19:58 [martinetd-linux:9p-test 6/6] net/9p/client.c:823 p9_client_handle_async() error: double unlocked 'c->lock' (orig line 813) kernel test robot

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.