I'm in the process of building a new server - in dmesg I've found warnings such as: [ 0.310970] ------------[ cut here ]------------ [ 0.310973] WARNING: at drivers/pci/search.c:49 pci_find_upstream_pcie_bridge+0x9e/0xb0() [ 0.310974] Hardware name: [ 0.310975] Modules linked in: [ 0.310977] Pid: 1, comm: swapper/0 Not tainted 3.11.3 #1 [ 0.310977] Call Trace: [ 0.310981] [<ffffffff8105d3cb>] ? warn_slowpath_common+0x7b/0xc0 [ 0.310982] [<ffffffff812b985e>] ? pci_find_upstream_pcie_bridge+0x9e/0xb0 [ 0.310985] [<ffffffff8148ad76>] ? intel_iommu_add_device+0x46/0x1d0 [ 0.310987] [<ffffffff8148767c>] ? add_iommu_group+0x2c/0x60 [ 0.310989] [<ffffffff81487650>] ? iommu_domain_free+0x20/0x20 [ 0.310991] [<ffffffff813a200d>] ? bus_for_each_dev+0x4d/0x80 [ 0.310993] [<ffffffff81487b24>] ? bus_set_iommu+0x44/0x60 [ 0.310995] [<ffffffff818a7ab8>] ? intel_iommu_init+0x9fd/0xa84 [ 0.310998] [<ffffffff81884124>] ? prepare_namespace+0x162/0x162 [ 0.311000] [<ffffffff81082a40>] ? lg_local_unlock+0x20/0x40 [ 0.311002] [<ffffffff811217ab>] ? sys_mkdirat+0x4b/0x70 [ 0.311004] [<ffffffff818867ae>] ? memblock_find_dma_reserve+0x13e/0x13e [ 0.311006] [<ffffffff818867bc>] ? pci_iommu_init+0xe/0x37 [ 0.311007] [<ffffffff810001b9>] ? do_one_initcall+0x39/0x170 [ 0.311009] [<ffffffff81883b32>] ? kernel_init+0x132/0x1b6 [ 0.311011] [<ffffffff81883460>] ? loglevel+0x34/0x34 [ 0.311012] [<ffffffff815e0534>] ? kernel_thread_helper+0x4/0x10 [ 0.311014] [<ffffffff81883a00>] ? start_kernel+0x2e5/0x2e5 [ 0.311015] [<ffffffff815e0530>] ? gs_change+0xb/0xb [ 0.311018] ---[ end trace 1cbaf249bb3eb5b0 ]--- I'm using a recent kernel here because it is fairly new Haswell/Lynx Point hardware, but it was also reported with any kernel version ranging from 3.1 to 3.9. The warning is caused by an ill-behaving PCIe-to-PCI bridge that doesn't report PCIe capability, and could mean trouble with VT-d. The patch series that is linked with that bug applies fine over 3.11.3 and resolves the warning. Not sure why it wasn't upstreamed yet.
I talked to the upstream developer who referred me to: http://comments.gmane.org/gmane.linux.kernel.pci/23876 He replied that the patch still needs to be more generalized as the solution is too Intel specific. He report he has not had much time to work on this at the momment.
I see a similar behaviour. Board: ASUS P9B-WS CPU: Xeon E3-1230v3 Dmesg output: [ 0.222652] ------------[ cut here ]------------ [ 0.222656] WARNING: CPU: 1 PID: 1 at drivers/pci/search.c:46 pci_find_upstream_pcie_bridge+0x4e/0x65() [ 0.222658] Modules linked in: [ 0.222660] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.12.5-gentoo #1 [ 0.222662] Hardware name: ASUS All Series/P9D WS, BIOS 1103 06/14/2013 [ 0.222664] 0000000000000000 0000000000000009 ffffffff81703004 0000000000000000 [ 0.222666] ffffffff8107fdd6 ffff88040c00b240 ffffffff8129b649 ffffc90006980000 [ 0.222669] 0000000000000000 ffff88040c7bf000 ffff88040c7bf098 ffffffff815c25f5 [ 0.222671] Call Trace: [ 0.222675] [<ffffffff81703004>] ? dump_stack+0x41/0x51 [ 0.222679] [<ffffffff8107fdd6>] ? warn_slowpath_common+0x73/0x8b [ 0.222681] [<ffffffff8129b649>] ? pci_find_upstream_pcie_bridge+0x4e/0x65 [ 0.222685] [<ffffffff815c25f5>] ? bus_set_iommu+0x46/0x46 [ 0.222687] [<ffffffff8129b649>] ? pci_find_upstream_pcie_bridge+0x4e/0x65 [ 0.222689] [<ffffffff815c9642>] ? intel_iommu_add_device+0x47/0x1bb [ 0.222691] [<ffffffff815c25f5>] ? bus_set_iommu+0x46/0x46 [ 0.222694] [<ffffffff815c2627>] ? add_iommu_group+0x32/0x40 [ 0.222697] [<ffffffff81426914>] ? bus_for_each_dev+0x4e/0x7f [ 0.222699] [<ffffffff815c25ef>] ? bus_set_iommu+0x40/0x46 [ 0.222703] [<ffffffff81a99dc4>] ? intel_iommu_init+0xa36/0xb42 [ 0.222706] [<ffffffff81a66943>] ? unpack_to_rootfs+0x241/0x251 [ 0.222709] [<ffffffff81a6a6f9>] ? pci_iommu_init+0xe/0x37 [ 0.222711] [<ffffffff81a6a6eb>] ? memblock_find_dma_reserve+0x140/0x140 [ 0.222714] [<ffffffff8100025a>] ? do_one_initcall+0x78/0xf6 [ 0.222717] [<ffffffff81094eaa>] ? parse_args+0x117/0x24c [ 0.222719] [<ffffffff81a65d9e>] ? kernel_init_freeable+0x133/0x1c4 [ 0.222722] [<ffffffff81a656b1>] ? do_early_param+0x83/0x83 [ 0.222725] [<ffffffff816fcd6c>] ? rest_init+0x70/0x70 [ 0.222727] [<ffffffff816fcd72>] ? kernel_init+0x6/0xce [ 0.222729] [<ffffffff81709d7c>] ? ret_from_fork+0x7c/0xb0 [ 0.222732] [<ffffffff816fcd6c>] ? rest_init+0x70/0x70 [ 0.222735] ---[ end trace 4a5607d4daee3420 ]--- This warning disappears if I disable VT-d in the BIOS
https://bugzilla.kernel.org/show_bug.cgi?id=44881
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/pci/quirks.c?id=ebdb51eb7806df56221d4536a6a9702751d6df85
Fixed in 3.16.0
Thanks for reporting. I'm going to close this now, glad to see the fix is in and released.