Hi Taku, The below oops is pretty reproducible, and shows up first in: tree: git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/taku-acpi-pci-host-bridge-v3 head: e3faec8ea9c8aa683c56fa20ff2c58a4c5857960 commit: d3c663236318a43fed5d86a643e6ea2534e9220e [5/7] PCI/ACPI: Protect acpi_pci_roots list with mutex [ 8.613239] (acpi_pci_root_lock){+.+.+.}, at: [] acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] (acpi_pci_root_lock){+.+.+.}, at: [] acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] (acpi_pci_root_lock){+.+.+.}, at: [] acpi_pci_register_driver+0x21/0x79 [ 8.613239] lock(acpi_pci_root_lock); [ 8.613239] lock(acpi_pci_root_lock); [ 8.613239] #0: (acpi_pci_root_lock){+.+.+.}, at: [] acpi_pci_register_driver+0x21/0x79 [ 8.613239] [] ? acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] ? acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] ? acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.610859] [ 8.611385] ============================================= [ 8.612505] [ INFO: possible recursive locking detected ] [ 8.613239] 3.6.0-rc1-00022-gd3c6632 #7512 Not tainted [ 8.613239] --------------------------------------------- [ 8.613239] swapper/0/1 is trying to acquire lock: [ 8.613239] (acpi_pci_root_lock){+.+.+.}, at: [] acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [ 8.613239] but task is already holding lock: [ 8.613239] (acpi_pci_root_lock){+.+.+.}, at: [] acpi_pci_register_driver+0x21/0x79 [ 8.613239] [ 8.613239] other info that might help us debug this: [ 8.613239] Possible unsafe locking scenario: [ 8.613239] [ 8.613239] CPU0 [ 8.613239] ---- [ 8.613239] lock(acpi_pci_root_lock); [ 8.613239] lock(acpi_pci_root_lock); [ 8.613239] [ 8.613239] *** DEADLOCK *** [ 8.613239] [ 8.613239] May be due to missing lock nesting notation [ 8.613239] [ 8.613239] 1 lock held by swapper/0/1: [ 8.613239] #0: (acpi_pci_root_lock){+.+.+.}, at: [] acpi_pci_register_driver+0x21/0x79 [ 8.613239] [ 8.613239] stack backtrace: [ 8.613239] Pid: 1, comm: swapper/0 Not tainted 3.6.0-rc1-00022-gd3c6632 #7512 [ 8.613239] Call Trace: [ 8.613239] [] __lock_acquire+0xbef/0xd04 [ 8.613239] [] ? kvm_clock_read+0x2e/0x36 [ 8.613239] [] lock_acquire+0xd5/0x119 [ 8.613239] [] ? acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] ? acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] __mutex_lock_common+0x58/0x387 [ 8.613239] [] ? acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] ? kvm_clock_read+0x2e/0x36 [ 8.613239] [] ? irq_trace+0x14/0x21 [ 8.613239] [] mutex_lock_nested+0x40/0x45 [ 8.613239] [] acpi_get_pci_rootbridge_handle+0x22/0x63 [ 8.613239] [] acpi_pci_get_bridge_handle+0x2c/0x2e [ 8.613239] [] acpi_pci_check_ejectable+0x18/0x49 [ 8.613239] [] ? _raw_spin_unlock_irqrestore+0x45/0x61 [ 8.613239] [] register_slot+0x2f/0x460 [ 8.613239] [] ? up+0x39/0x3e [ 8.613239] [] acpi_ns_walk_namespace+0xbe/0x179 [ 8.613239] [] ? acpi_os_wait_semaphore+0x45/0x5a [ 8.613239] [] ? kzalloc.constprop.14+0x10/0x10 [ 8.613239] [] ? kzalloc.constprop.14+0x10/0x10 [ 8.613239] [] acpi_walk_namespace+0x98/0xcb [ 8.613239] [] init_bridge_misc+0x4c/0xd5 [ 8.613239] [] add_bridge+0xe9/0x138 [ 8.613239] [] acpi_pci_register_driver+0x52/0x79 [ 8.613239] [] ? shpcd_init+0xf0/0xf0 [ 8.613239] [] acpiphp_glue_init+0x48/0x51 [ 8.613239] [] acpiphp_init+0x2b/0x50 [ 8.613239] [] do_one_initcall+0x7f/0x13a [ 8.613239] [] kernel_init+0x13c/0x1c0 [ 8.613239] [] ? do_early_param+0x8c/0x8c [ 8.613239] [] kernel_thread_helper+0x4/0x10 [ 8.613239] [] ? retint_restore_args+0x13/0x13 [ 8.613239] [] ? start_kernel+0x3d1/0x3d1 [ 8.613239] [] ? gs_change+0x13/0x13 Thanks, Fengguang