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