Linux-SCSI Archive on lore.kernel.org
 help / color / Atom feed
From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: linux-scsi@vger.kernel.org, Damien Le Moal <damien.lemoal@wdc.com>
Cc: "Martin K . Petersen" <martin.petersen@oracle.com>
Subject: Re: [PATCH] scsi: mpt3sas: Fix unlock imbalance
Date: Fri,  3 Jul 2020 00:02:58 -0400
Message-ID: <159374890395.14616.10785231694620584225.b4-ty@oracle.com> (raw)
In-Reply-To: <20200701085254.51740-1-damien.lemoal@wdc.com>

On Wed, 1 Jul 2020 17:52:54 +0900, Damien Le Moal wrote:

> In BRM_status_show(), if the condition "!ioc->is_warpdrive" tested on
> entry to the function is true, a "goto out" is called. This results in
> unlocking ioc->pci_access_mutex without this mutex lock being taken.
> This generates the following splat:
> 
> [ 1148.539883] mpt3sas_cm2: BRM_status_show: BRM attribute is only for warpdrive
> [ 1148.547184]
> [ 1148.548708] =====================================
> [ 1148.553501] WARNING: bad unlock balance detected!
> [ 1148.558277] 5.8.0-rc3+ #827 Not tainted
> [ 1148.562183] -------------------------------------
> [ 1148.566959] cat/5008 is trying to release lock (&ioc->pci_access_mutex) at:
> [ 1148.574035] [<ffffffffc070b7a3>] BRM_status_show+0xd3/0x100 [mpt3sas]
> [ 1148.580574] but there are no more locks to release!
> [ 1148.585524]
> [ 1148.585524] other info that might help us debug this:
> [ 1148.599624] 3 locks held by cat/5008:
> [ 1148.607085]  #0: ffff92aea3e392c0 (&p->lock){+.+.}-{3:3}, at: seq_read+0x34/0x480
> [ 1148.618509]  #1: ffff922ef14c4888 (&of->mutex){+.+.}-{3:3}, at: kernfs_seq_start+0x2a/0xb0
> [ 1148.630729]  #2: ffff92aedb5d7310 (kn->active#224){.+.+}-{0:0}, at: kernfs_seq_start+0x32/0xb0
> [ 1148.643347]
> [ 1148.643347] stack backtrace:
> [ 1148.655259] CPU: 73 PID: 5008 Comm: cat Not tainted 5.8.0-rc3+ #827
> [ 1148.665309] Hardware name: HGST H4060-S/S2600STB, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019
> [ 1148.678394] Call Trace:
> [ 1148.684750]  dump_stack+0x78/0xa0
> [ 1148.691802]  lock_release.cold+0x45/0x4a
> [ 1148.699451]  __mutex_unlock_slowpath+0x35/0x270
> [ 1148.707675]  BRM_status_show+0xd3/0x100 [mpt3sas]
> [ 1148.716092]  dev_attr_show+0x19/0x40
> [ 1148.723664]  sysfs_kf_seq_show+0x87/0x100
> [ 1148.731193]  seq_read+0xbc/0x480
> [ 1148.737882]  vfs_read+0xa0/0x160
> [ 1148.744514]  ksys_read+0x58/0xd0
> [ 1148.751129]  do_syscall_64+0x4c/0xa0
> [ 1148.757941]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
> [ 1148.766240] RIP: 0033:0x7f1230566542
> [ 1148.772957] Code: Bad RIP value.
> [ 1148.779206] RSP: 002b:00007ffeac1bcac8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
> [ 1148.790063] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f1230566542
> [ 1148.800284] RDX: 0000000000020000 RSI: 00007f1223460000 RDI: 0000000000000003
> [ 1148.810474] RBP: 00007f1223460000 R08: 00007f122345f010 R09: 0000000000000000
> [ 1148.820641] R10: 0000000000000022 R11: 0000000000000246 R12: 0000000000000000
> [ 1148.830728] R13: 0000000000000003 R14: 0000000000020000 R15: 0000000000020000
> 
> [...]

Applied to 5.8/scsi-fixes, thanks!

[1/1] scsi: mpt3sas: Fix unlock imbalance
      https://git.kernel.org/mkp/scsi/c/cb551b8dc079

-- 
Martin K. Petersen	Oracle Linux Engineering

      parent reply index

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-01  8:52 Damien Le Moal
2020-07-01 10:10 ` Johannes Thumshirn
2020-07-01 10:31   ` Damien Le Moal
2020-07-01 12:46     ` Johannes Thumshirn
2020-07-02  7:45   ` Sreekanth Reddy
2020-07-03  4:02 ` Martin K. Petersen [this message]

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=159374890395.14616.10785231694620584225.b4-ty@oracle.com \
    --to=martin.petersen@oracle.com \
    --cc=damien.lemoal@wdc.com \
    --cc=linux-scsi@vger.kernel.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

Linux-SCSI Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-scsi/0 linux-scsi/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-scsi linux-scsi/ https://lore.kernel.org/linux-scsi \
		linux-scsi@vger.kernel.org
	public-inbox-index linux-scsi

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-scsi


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git