Red Hat Bugzilla – Bug 811492
warn_invalid_dmar in detect_intel_iommu on HP Pavilion dv6 Notebook PC
Last modified: 2012-04-11 08:33:15 EDT
[ 0.000000] ------------[ cut here ]------------ [ 0.000000] WARNING: at drivers/iommu/dmar.c:492 warn_invalid_dmar+0x98/0xb0() [ 0.000000] Hardware name: HP Pavilion dv6 Notebook PC [ 0.000000] Your BIOS is broken; DMAR reported at address 0! [ 0.000000] BIOS vendor: Hewlett-Packard; Ver: F.21; Product Version: Rev 1 [ 0.000000] Modules linked in: [ 0.000000] Pid: 0, comm: swapper Not tainted 3.2.9-2.fc16.i686.PAE #1 [ 0.000000] Call Trace: [ 0.000000] [<c045ea52>] warn_slowpath_common+0x72/0xa0 [ 0.000000] [<c082ec68>] ? warn_invalid_dmar+0x98/0xb0 [ 0.000000] [<c082ec68>] ? warn_invalid_dmar+0x98/0xb0 [ 0.000000] [<c045eae2>] warn_slowpath_fmt_taint+0x32/0x40 [ 0.000000] [<c082ec68>] warn_invalid_dmar+0x98/0xb0 [ 0.000000] [<c0c03fac>] check_zero_address+0x59/0x125 [ 0.000000] [<c06cd165>] ? acpi_get_table_with_size+0x59/0xb3 [ 0.000000] [<c0c0408a>] detect_intel_iommu+0x12/0x78 [ 0.000000] [<c0bd1d1f>] pci_iommu_alloc+0x35/0x5a [ 0.000000] [<c0bddf9a>] mem_init+0xe/0x28c [ 0.000000] [<c0be8d6f>] ? __alloc_bootmem_node_nopanic+0x72/0x99 [ 0.000000] [<c0935576>] ? printk+0x2d/0x2f [ 0.000000] [<c0beb2d1>] ? page_cgroup_init_flatmem+0x8f/0xbc [ 0.000000] [<c0bca5ec>] start_kernel+0x1a6/0x35d [ 0.000000] [<c0bca1d7>] ? loglevel+0x2b/0x2b [ 0.000000] [<c0bca0ba>] i386_start_kernel+0xa9/0xaf [ 0.000000] ---[ end trace a7919e7f17c0a725 ]--- The BIOS might be broken, but then I would expect the kernel to have a workaround for such a well-known brand.
(In reply to comment #0) > [ 0.000000] ------------[ cut here ]------------ > [ 0.000000] WARNING: at drivers/iommu/dmar.c:492 > warn_invalid_dmar+0x98/0xb0() > [ 0.000000] Hardware name: HP Pavilion dv6 Notebook PC > [ 0.000000] Your BIOS is broken; DMAR reported at address 0! > [ 0.000000] BIOS vendor: Hewlett-Packard; Ver: F.21; Product Version: Rev 1 > [ 0.000000] Modules linked in: > [ 0.000000] Pid: 0, comm: swapper Not tainted 3.2.9-2.fc16.i686.PAE #1 > [ 0.000000] Call Trace: > [ 0.000000] [<c045ea52>] warn_slowpath_common+0x72/0xa0 > [ 0.000000] [<c082ec68>] ? warn_invalid_dmar+0x98/0xb0 > [ 0.000000] [<c082ec68>] ? warn_invalid_dmar+0x98/0xb0 > [ 0.000000] [<c045eae2>] warn_slowpath_fmt_taint+0x32/0x40 > [ 0.000000] [<c082ec68>] warn_invalid_dmar+0x98/0xb0 > [ 0.000000] [<c0c03fac>] check_zero_address+0x59/0x125 > [ 0.000000] [<c06cd165>] ? acpi_get_table_with_size+0x59/0xb3 > [ 0.000000] [<c0c0408a>] detect_intel_iommu+0x12/0x78 > [ 0.000000] [<c0bd1d1f>] pci_iommu_alloc+0x35/0x5a > [ 0.000000] [<c0bddf9a>] mem_init+0xe/0x28c > [ 0.000000] [<c0be8d6f>] ? __alloc_bootmem_node_nopanic+0x72/0x99 > [ 0.000000] [<c0935576>] ? printk+0x2d/0x2f > [ 0.000000] [<c0beb2d1>] ? page_cgroup_init_flatmem+0x8f/0xbc > [ 0.000000] [<c0bca5ec>] start_kernel+0x1a6/0x35d > [ 0.000000] [<c0bca1d7>] ? loglevel+0x2b/0x2b > [ 0.000000] [<c0bca0ba>] i386_start_kernel+0xa9/0xaf > [ 0.000000] ---[ end trace a7919e7f17c0a725 ]--- > > The BIOS might be broken, but then I would expect the kernel to have a > workaround for such a well-known brand. That essentially is the workaround. It's very verbose but it detects a broken DMAR and basically disables it. This should be informational only and there isn't much we can do about a broken BIOS other than not use what it provided.
FWIW, when the broken firmware is known and handled by workaround, then I would expect it to show a less verbose informational message - with a less scary WARNING and without a call trace.
(In reply to comment #2) > FWIW, when the broken firmware is known and handled by workaround, then I would > expect it to show a less verbose informational message - with a less scary > WARNING and without a call trace. Yeah. Apparently upstream doesn't think so.