lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 6 Jul 2012 19:40:32 +0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	Theodore Ts'o <tytso@....edu>
Cc:	Linux Kernel Developers List <linux-kernel@...r.kernel.org>,
	torvalds@...ux-foundation.org, w@....eu, ewust@...ch.edu,
	zakir@...ch.edu, greg@...ah.com, mpm@...enic.com,
	nadiah@...ucsd.edu, jhalderm@...ch.edu, tglx@...utronix.de,
	davem@...emloft.net
Subject: Re: [PATCH 00/10] /dev/random fixups

Hi Theodore,

I got this lockdep warning in linux-next. I've not bisected it..
however seems most related to this patchset.

[    3.004015] =================================
[    3.004161] [ INFO: inconsistent lock state ]
[    3.004161] 3.5.0-rc5+ #3 Not tainted
[    3.004161] ---------------------------------
[    3.004161] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
[    3.004161] swapper/0/1 [HC1[1]:SC0[0]:HE0:SE1] takes:
[    3.004161]  (&input_pool.lock){?.+...}, at: [<ffffffff8138ba4a>] mix_pool_bytes.constprop.17+0x28/0x52
[    3.004161] {HARDIRQ-ON-W} state was registered at:
[    3.004161]   [<ffffffff81080e75>] __lock_acquire+0x594/0x7cb
[    3.004161]   [<ffffffff810815b6>] lock_acquire+0xdb/0x127
[    3.004161]   [<ffffffff817b6405>] _raw_spin_lock+0x45/0x78
[    3.004161]   [<ffffffff8138ac27>] account+0x2c/0xdd
[    3.004161]   [<ffffffff8138bf7d>] extract_entropy+0x9a/0x10a
[    3.004161]   [<ffffffff8138be73>] xfer_secondary_pool+0x8a/0xfa
[    3.004161]   [<ffffffff8138bf68>] extract_entropy+0x85/0x10a
[    3.004161]   [<ffffffff8138c0fa>] get_random_bytes+0x20/0x22
[    3.004161]   [<ffffffff8168ffec>] neigh_hash_alloc+0xaf/0xc9
[    3.004161]   [<ffffffff816910be>] neigh_table_init+0x8c/0x264
[    3.004161]   [<ffffffff81eb8fd7>] arp_init+0x10/0x4d
[    3.004161]   [<ffffffff81eb94c3>] inet_init+0x1a4/0x2b0
[    3.004161]   [<ffffffff810001ff>] do_one_initcall+0x7f/0x134
[    3.004161]   [<ffffffff81e7fc1b>] kernel_init+0x13c/0x1c0
[    3.004161]   [<ffffffff817bece4>] kernel_thread_helper+0x4/0x10
[    3.004161] irq event stamp: 766846
[    3.004161] hardirqs last  enabled at (766845): [<ffffffff817b6dfa>] _raw_spin_unlock_irqrestore+0x3f/0x55
[    3.004161] hardirqs last disabled at (766846): [<ffffffff817b7167>] common_interrupt+0x67/0x6c
[    3.004161] softirqs last  enabled at (766808): [<ffffffff81037b3e>] __do_softirq+0x1b1/0x205
[    3.004161] softirqs last disabled at (766793): [<ffffffff817beddc>] call_softirq+0x1c/0x30
[    3.004161] 
[    3.004161] other info that might help us debug this:
[    3.004161]  Possible unsafe locking scenario:
[    3.004161] 
[    3.004161]        CPU0
[    3.004161]        ----
[    3.004161]   lock(&input_pool.lock);
[    3.004161]   <Interrupt>
[    3.004161]     lock(&input_pool.lock);
[    3.004161] 
[    3.004161]  *** DEADLOCK ***
[    3.004161] 
[    3.004161] 4 locks held by swapper/0/1:
[    3.004161]  #0:  (&__lockdep_no_validate__){......}, at: [<ffffffff813b6759>] __driver_attach+0x3f/0x85
[    3.004161]  #1:  (&__lockdep_no_validate__){......}, at: [<ffffffff813b6767>] __driver_attach+0x4d/0x85
[    3.004161]  #2:  (&bdev->bd_mutex){+.+.+.}, at: [<ffffffff8113cbb6>] __blkdev_get+0x60/0x3bf
[    3.004161]  #3:  (&(&q->__queue_lock)->rlock){-.....}, at: [<ffffffff813c3f0e>] blk_done+0x35/0xf6
[    3.004161] 
[    3.004161] stack backtrace:
[    3.004161] Pid: 1, comm: swapper/0 Not tainted 3.5.0-rc5+ #3
[    3.004161] Call Trace:
[    3.004161]  <IRQ>  [<ffffffff817a41b3>] print_usage_bug.part.32+0x272/0x281
[    3.004161]  [<ffffffff8100d9c5>] ? save_stack_trace+0x2c/0x49
[    3.004161]  [<ffffffff8107eeab>] ? check_usage_backwards+0xed/0xed
[    3.004161]  [<ffffffff81080743>] mark_lock+0x364/0x502
[    3.004161]  [<ffffffff81080e07>] __lock_acquire+0x526/0x7cb
[    3.004161]  [<ffffffff810d1a03>] ? mempool_free_slab+0x17/0x19
[    3.004161]  [<ffffffff81106700>] ? kmem_cache_free+0xce/0x133
[    3.004161]  [<ffffffff810815b6>] lock_acquire+0xdb/0x127
[    3.004161]  [<ffffffff8138ba4a>] ? mix_pool_bytes.constprop.17+0x28/0x52
[    3.004161]  [<ffffffff8113aecd>] ? bio_free+0x3d/0x56
[    3.004161]  [<ffffffff817b6579>] _raw_spin_lock_irqsave+0x51/0x8b
[    3.004161]  [<ffffffff8138ba4a>] ? mix_pool_bytes.constprop.17+0x28/0x52
[    3.004161]  [<ffffffff81139ff9>] ? bio_endio+0x2d/0x2f
[    3.004161]  [<ffffffff8138ba4a>] mix_pool_bytes.constprop.17+0x28/0x52
[    3.004161]  [<ffffffff812cce67>] ? blk_update_request+0x3d8/0x469
[    3.004161]  [<ffffffff8138bcfc>] add_timer_randomness+0x56/0x10d
[    3.004161]  [<ffffffff8138c731>] add_disk_randomness+0x2e/0x30
[    3.004161]  [<ffffffff812ccf5b>] blk_update_bidi_request+0x63/0x6d
[    3.004161]  [<ffffffff812ce5af>] __blk_end_bidi_request+0x17/0x31
[    3.004161]  [<ffffffff812ce5eb>] __blk_end_request_all+0x22/0x2a
[    3.004161]  [<ffffffff813c3f71>] blk_done+0x98/0xf6
[    3.004161]  [<ffffffff81368f75>] vring_interrupt+0x2b/0x38
[    3.004161]  [<ffffffff8109b59d>] handle_irq_event_percpu+0x7f/0x1fd
[    3.004161]  [<ffffffff8109b75c>] handle_irq_event+0x41/0x61
[    3.004161]  [<ffffffff8109de18>] handle_edge_irq+0xc9/0xf0
[    3.004161]  [<ffffffff81003e0d>] handle_irq+0x125/0x132
[    3.004161]  [<ffffffff81037d69>] ? irq_enter+0x19/0x77
[    3.004161]  [<ffffffff817bf30d>] do_IRQ+0x4d/0xb4
[    3.004161]  [<ffffffff817b716c>] common_interrupt+0x6c/0x6c
[    3.004161]  <EOI>  [<ffffffff81022a61>] ? read_hpet+0x16/0x1a
[    3.004161]  [<ffffffff810759f5>] ktime_get_ts+0x73/0xbb
[    3.004161]  [<ffffffff810cfaf2>] ? __lock_page+0x68/0x68
[    3.004161]  [<ffffffff810a59b8>] __delayacct_blkio_start+0x22/0x24
[    3.004161]  [<ffffffff817b58b1>] io_schedule+0x52/0xcd
[    3.004161]  [<ffffffff810cfb00>] sleep_on_page+0xe/0x12
[    3.004161]  [<ffffffff817b3499>] __wait_on_bit_lock+0x46/0x8f
[    3.004161]  [<ffffffff8113bd6a>] ? blkdev_write_begin+0x25/0x25
[    3.004161]  [<ffffffff810cfaf0>] __lock_page+0x66/0x68
[    3.004161]  [<ffffffff810521d9>] ? autoremove_wake_function+0x3d/0x3d
[    3.004161]  [<ffffffff810d00f7>] do_read_cache_page+0xd2/0x15d
[    3.004161]  [<ffffffff812da1b1>] ? efi_partition+0xeb/0x82a
[    3.004161]  [<ffffffff810d01c6>] read_cache_page_async+0x1c/0x1e
[    3.004161]  [<ffffffff810d01d6>] read_cache_page+0xe/0x18
[    3.004161]  [<ffffffff812d7274>] read_dev_sector+0x30/0x8a
[    3.004161]  [<ffffffff812d9e42>] read_lba+0xa4/0x10c
[    3.004161]  [<ffffffff812da1d8>] efi_partition+0x112/0x82a
[    3.004161]  [<ffffffff812e995b>] ? string.isra.3+0x3d/0xa4
[    3.004161]  [<ffffffff812ea4c7>] ? vsnprintf+0x77/0x433
[    3.004161]  [<ffffffff812ea90f>] ? snprintf+0x34/0x36
[    3.004161]  [<ffffffff812d8259>] check_partition+0xf5/0x1b4
[    3.004161]  [<ffffffff812d7eec>] rescan_partitions+0xae/0x29f
[    3.004161]  [<ffffffff817b6da7>] ? _raw_spin_unlock+0x29/0x3d
[    3.004161]  [<ffffffff8113ccd9>] __blkdev_get+0x183/0x3bf
[    3.004161]  [<ffffffff811248df>] ? unlock_new_inode+0x61/0x66
[    3.004161]  [<ffffffff8113d0a4>] blkdev_get+0x18f/0x30a
[    3.004161]  [<ffffffff811248df>] ? unlock_new_inode+0x61/0x66
[    3.004161]  [<ffffffff8113bc63>] ? bdget+0x121/0x130
[    3.004161]  [<ffffffff813b29e8>] ? put_device+0x17/0x19
[    3.004161]  [<ffffffff812d5b8d>] add_disk+0x2bc/0x42d
[    3.004161]  [<ffffffff8113c2ca>] ? revalidate_disk+0x68/0x74
[    3.004161]  [<ffffffff81369c14>] ? vp_get+0x4b/0x5f
[    3.004161]  [<ffffffff8176cee2>] virtblk_probe+0x467/0x56b
[    3.004161]  [<ffffffff813b671a>] ? driver_probe_device+0x1c4/0x1c4
[    3.004161]  [<ffffffff81368b15>] virtio_dev_probe+0xb7/0xdb
[    3.004161]  [<ffffffff813b65fc>] driver_probe_device+0xa6/0x1c4
[    3.004161]  [<ffffffff813b677c>] __driver_attach+0x62/0x85
[    3.004161]  [<ffffffff81063491>] ? local_clock+0xf/0x3c
[    3.004161]  [<ffffffff813b4bf3>] bus_for_each_dev+0x57/0x89
[    3.004161]  [<ffffffff813b616d>] driver_attach+0x1e/0x20
[    3.004161]  [<ffffffff813b5d32>] bus_add_driver+0x100/0x23d
[    3.004161]  [<ffffffff81ea9fcc>] ? loop_init+0x133/0x133
[    3.004161]  [<ffffffff81ea9fcc>] ? loop_init+0x133/0x133
[    3.004161]  [<ffffffff813b6d3b>] driver_register+0x93/0x10e
[    3.004161]  [<ffffffff81ea9fcc>] ? loop_init+0x133/0x133
[    3.004161]  [<ffffffff81368ce8>] register_virtio_driver+0x28/0x2c
[    3.004161]  [<ffffffff81eaa020>] init+0x54/0x8b
[    3.004161]  [<ffffffff81ea9e99>] ? max_loop_setup+0x1a/0x1a
[    3.004161]  [<ffffffff810001ff>] do_one_initcall+0x7f/0x134
[    3.004161]  [<ffffffff81e7fc1b>] kernel_init+0x13c/0x1c0
[    3.004161]  [<ffffffff81e7f530>] ? do_early_param+0x8d/0x8d
[    3.004161]  [<ffffffff817bece4>] kernel_thread_helper+0x4/0x10
[    3.004161]  [<ffffffff8105c08a>] ? finish_task_switch+0x42/0xd3
[    3.004161]  [<ffffffff817b7219>] ? retint_restore_args+0xe/0xe
[    3.004161]  [<ffffffff81e7fadf>] ? start_kernel+0x35c/0x35c
[    3.004161]  [<ffffffff817bece0>] ? gs_change+0xb/0xb
[    3.243752]  vda: unknown partition table

Thanks,
Fengguang

View attachment "dmesg-kvm-waimea-20296-2012-07-06-19-19-48" of type "text/plain" (56297 bytes)

View attachment "config-3.5.0-rc5+" of type "text/plain" (72769 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ