Revision da9846ae15186d491d6e21ebbb5051e1d3c7f652 authored by Tejun Heo on 29 January 2014, 17:04:03 UTC, committed by Greg Kroah-Hartman on 05 February 2014, 19:44:04 UTC
kernfs_deactivate() forgot to check whether KERNFS_LOCKDEP is set
before performing lockdep annotations and ends up feeding
uninitialized lockdep_map to lockdep triggering warning like the
following on USB stick hotunplug.

 usb 1-2: USB disconnect, device number 2
 INFO: trying to register non-static key.
 the code is fine but needs lockdep annotation.
 turning off the locking correctness validator.
 CPU: 1 PID: 62 Comm: khubd Not tainted 3.13.0-work+ #82
 Hardware name: empty empty/S3992, BIOS 080011  10/26/2007
  ffff880065ca7f60 ffff88013a4ffa08 ffffffff81cfb6bd 0000000000000002
  ffff88013a4ffac8 ffffffff810f8530 ffff88013a4fc710 0000000000000002
  ffff880100000000 ffffffff82a3db50 0000000000000001 ffff88013a4fc710
 Call Trace:
  [<ffffffff81cfb6bd>] dump_stack+0x4e/0x7a
  [<ffffffff810f8530>] __lock_acquire+0x1910/0x1e70
  [<ffffffff810f931a>] lock_acquire+0x9a/0x1d0
  [<ffffffff8127c75e>] kernfs_deactivate+0xee/0x130
  [<ffffffff8127d4c8>] kernfs_addrm_finish+0x38/0x60
  [<ffffffff8127d701>] kernfs_remove_by_name_ns+0x51/0xa0
  [<ffffffff8127b4f1>] remove_files.isra.1+0x41/0x80
  [<ffffffff8127b7e7>] sysfs_remove_group+0x47/0xa0
  [<ffffffff8127b873>] sysfs_remove_groups+0x33/0x50
  [<ffffffff8177d66d>] device_remove_attrs+0x4d/0x80
  [<ffffffff8177e25e>] device_del+0x12e/0x1d0
  [<ffffffff819722c2>] usb_disconnect+0x122/0x1a0
  [<ffffffff819749b5>] hub_thread+0x3c5/0x1290
  [<ffffffff810c6a6d>] kthread+0xed/0x110
  [<ffffffff81d0a56c>] ret_from_fork+0x7c/0xb0

Fix it by making kernfs_deactivate() perform lockdep annotations only
if KERNFS_LOCKDEP is set.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Fabio Estevam <festevam@gmail.com>
Reported-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Jiri Kosina <jkosina@suse.cz>
Reported-by: Dave Jones <davej@redhat.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 38dbfb5
History
File Mode Size
ac97
ali5451
asihpi
au88x0
aw2
ca0106
cs46xx
cs5535audio
ctxfi
echoaudio
emu10k1
hda
ice1712
korg1212
lola
lx6464es
mixart
nm256
oxygen
pcxhr
riptide
rme9652
trident
vx222
ymfpci
Kconfig -rw-r--r-- 24.7 KB
Makefile -rw-r--r-- 2.1 KB
ad1889.c -rw-r--r-- 26.1 KB
ad1889.h -rw-r--r-- 7.9 KB
ak4531_codec.c -rw-r--r-- 17.1 KB
als300.c -rw-r--r-- 23.5 KB
als4000.c -rw-r--r-- 31.4 KB
atiixp.c -rw-r--r-- 45.7 KB
atiixp_modem.c -rw-r--r-- 35.8 KB
azt3328.c -rw-r--r-- 85.2 KB
azt3328.h -rw-r--r-- 15.5 KB
bt87x.c -rw-r--r-- 29.6 KB
cmipci.c -rw-r--r-- 101.8 KB
cs4281.c -rw-r--r-- 64.4 KB
cs5530.c -rw-r--r-- 7.1 KB
ens1370.c -rw-r--r-- 79.1 KB
ens1371.c -rw-r--r-- 38 bytes
es1938.c -rw-r--r-- 55.3 KB
es1968.c -rw-r--r-- 79.2 KB
fm801.c -rw-r--r-- 41.6 KB
intel8x0.c -rw-r--r-- 92.7 KB
intel8x0m.c -rw-r--r-- 37.5 KB
maestro3.c -rw-r--r-- 81.6 KB
rme32.c -rw-r--r-- 57.6 KB
rme96.c -rw-r--r-- 71.6 KB
sis7019.c -rw-r--r-- 40.0 KB
sis7019.h -rw-r--r-- 13.3 KB
sonicvibes.c -rw-r--r-- 51.4 KB
via82xx.c -rw-r--r-- 77.6 KB
via82xx_modem.c -rw-r--r-- 34.4 KB

back to top