mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* drivers/md/dm-mpath.c:1682 multipath_end_io_bio() error: double unlocked 'm->lock' (orig line 1675)
@ 2020-08-08 11:05 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-08-08 11:05 UTC (permalink / raw)
  To: Mike Snitzer; +Cc: kbuild-all, linux-kernel

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   449dc8c97089a6e09fb2dac4d92b1b7ac0eb7c1e
commit: a271a89c6e4773478b1c4f8213dfe8351ea66723 dm mpath: take m->lock spinlock when testing QUEUE_IF_NO_PATH
date:   4 weeks ago
config: arm-randconfig-m031-20200808 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

New smatch warnings:
drivers/md/dm-mpath.c:1682 multipath_end_io_bio() error: double unlocked 'm->lock' (orig line 1675)
drivers/md/dm-mpath.c:1988 multipath_prepare_ioctl() error: double unlocked 'm->lock' (orig line 1977)

Old smatch warnings:
drivers/md/dm-mpath.c:432 choose_pgpath() error: double unlocked 'm->lock' (orig line 402)
drivers/md/dm-mpath.c:443 choose_pgpath() error: double unlocked 'm->lock' (orig line 389)
drivers/md/dm-mpath.c:593 __map_bio() error: double unlocked 'm->lock' (orig line 589)
drivers/md/dm-mpath.c:1574 pg_init_done() error: double unlocked 'm->lock' (orig line 1527)

vim +1682 drivers/md/dm-mpath.c

^1da177e4c3f41 Linus Torvalds          2005-04-16  1647  
4e4cbee93d5613 Christoph Hellwig       2017-06-03  1648  static int multipath_end_io_bio(struct dm_target *ti, struct bio *clone,
4e4cbee93d5613 Christoph Hellwig       2017-06-03  1649  				blk_status_t *error)
76e33fe4e2c436 Mike Snitzer            2016-05-19  1650  {
14ef1e48269dde Christoph Hellwig       2017-06-03  1651  	struct multipath *m = ti->private;
14ef1e48269dde Christoph Hellwig       2017-06-03  1652  	struct dm_mpath_io *mpio = get_mpio_from_bio(clone);
14ef1e48269dde Christoph Hellwig       2017-06-03  1653  	struct pgpath *pgpath = mpio->pgpath;
76e33fe4e2c436 Mike Snitzer            2016-05-19  1654  	unsigned long flags;
1be56909845889 Christoph Hellwig       2017-06-03  1655  	int r = DM_ENDIO_DONE;
76e33fe4e2c436 Mike Snitzer            2016-05-19  1656  
a1275677f8cd06 Keith Busch             2018-01-09  1657  	if (!*error || !blk_path_error(*error))
14ef1e48269dde Christoph Hellwig       2017-06-03  1658  		goto done;
76e33fe4e2c436 Mike Snitzer            2016-05-19  1659  
14ef1e48269dde Christoph Hellwig       2017-06-03  1660  	if (pgpath)
14ef1e48269dde Christoph Hellwig       2017-06-03  1661  		fail_path(pgpath);
76e33fe4e2c436 Mike Snitzer            2016-05-19  1662  
a271a89c6e4773 Mike Snitzer            2020-06-10  1663  	if (!atomic_read(&m->nr_valid_paths)) {
a271a89c6e4773 Mike Snitzer            2020-06-10  1664  		spin_lock_irqsave(&m->lock, flags);
a271a89c6e4773 Mike Snitzer            2020-06-10  1665  		if (!test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) {
a862e4e2154289 Mike Snitzer            2020-05-26  1666  			if (__must_push_back(m)) {
c1fd0abee0d52e Mike Snitzer            2017-12-07  1667  				r = DM_ENDIO_REQUEUE;
c1fd0abee0d52e Mike Snitzer            2017-12-07  1668  			} else {
18a482f5245cc8 Christoph Hellwig       2017-05-15  1669  				dm_report_EIO(m);
4e4cbee93d5613 Christoph Hellwig       2017-06-03  1670  				*error = BLK_STS_IOERR;
c1fd0abee0d52e Mike Snitzer            2017-12-07  1671  			}
a271a89c6e4773 Mike Snitzer            2020-06-10  1672  			spin_unlock_irqrestore(&m->lock, flags);
14ef1e48269dde Christoph Hellwig       2017-06-03  1673  			goto done;
18a482f5245cc8 Christoph Hellwig       2017-05-15  1674  		}
a271a89c6e4773 Mike Snitzer            2020-06-10 @1675  		spin_unlock_irqrestore(&m->lock, flags);
a271a89c6e4773 Mike Snitzer            2020-06-10  1676  	}
76e33fe4e2c436 Mike Snitzer            2016-05-19  1677  
76e33fe4e2c436 Mike Snitzer            2016-05-19  1678  	spin_lock_irqsave(&m->lock, flags);
76e33fe4e2c436 Mike Snitzer            2016-05-19  1679  	bio_list_add(&m->queued_bios, clone);
76e33fe4e2c436 Mike Snitzer            2016-05-19  1680  	if (!test_bit(MPATHF_QUEUE_IO, &m->flags))
76e33fe4e2c436 Mike Snitzer            2016-05-19  1681  		queue_work(kmultipathd, &m->process_queued_bios);
69cea0d45a618a Mike Snitzer            2020-06-10 @1682  	spin_unlock_irqrestore(&m->lock, flags);
76e33fe4e2c436 Mike Snitzer            2016-05-19  1683  
1be56909845889 Christoph Hellwig       2017-06-03  1684  	r = DM_ENDIO_INCOMPLETE;
14ef1e48269dde Christoph Hellwig       2017-06-03  1685  done:
76e33fe4e2c436 Mike Snitzer            2016-05-19  1686  	if (pgpath) {
14ef1e48269dde Christoph Hellwig       2017-06-03  1687  		struct path_selector *ps = &pgpath->pg->ps;
14ef1e48269dde Christoph Hellwig       2017-06-03  1688  
76e33fe4e2c436 Mike Snitzer            2016-05-19  1689  		if (ps->type->end_io)
087615bf3acdaf Gabriel Krisman Bertazi 2020-04-30  1690  			ps->type->end_io(ps, &pgpath->path, mpio->nr_bytes,
087615bf3acdaf Gabriel Krisman Bertazi 2020-04-30  1691  					 dm_start_time_ns_from_clone(clone));
76e33fe4e2c436 Mike Snitzer            2016-05-19  1692  	}
76e33fe4e2c436 Mike Snitzer            2016-05-19  1693  
1be56909845889 Christoph Hellwig       2017-06-03  1694  	return r;
76e33fe4e2c436 Mike Snitzer            2016-05-19  1695  }
76e33fe4e2c436 Mike Snitzer            2016-05-19  1696  

:::::: The code at line 1682 was first introduced by commit
:::::: 69cea0d45a618ad4ae74f36386ef1af5128b2b19 dm mpath: changes from initial m->flags locking audit

:::::: TO: Mike Snitzer <snitzer@redhat.com>
:::::: CC: Mike Snitzer <snitzer@redhat.com>

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

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

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

only message in thread, other threads:[~2020-08-08 11:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-08 11:05 drivers/md/dm-mpath.c:1682 multipath_end_io_bio() error: double unlocked 'm->lock' (orig line 1675) kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®