On Thu, Jan 5, 2017 at 12:46 AM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Wed, Jan 4, 2017 at 3:19 PM, Linus Torvalds > <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: >> >> This is my normal desktop, so pretty plain HW. >> >> It doesn't happen on my laptop, so it's obviously hw-related or >> possibly config-related. > > .. and here's the stack trace. Thanks! I reproduced it too in the meantime (but on an older system I rarely use). > Side note: should the '\n' be deleted? ACPI_ERROR() seems to add that > silly "where it happened" at the end, but due to the '\n' we end up > with two lines... > > Linus > > --- > > ACPI Warning: Table ffffffffb0e6c0a0, Validation count is zero > before decrement > (20160930/tbutils-456) > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 0 at drivers/acpi/acpica/tbutils.c:457 > acpi_tb_put_table+0x4e/0x62 > Modules linked in: > CPU: 0 PID: 0 Comm: swapper Not tainted > 4.10.0-rc2-00103-g4cf184638bcf-dirty #1 > Hardware name: System manufacturer System Product Name/Z170-K, BIOS > 1803 05/06/2016 > Call Trace: > acpi_tb_put_table+0x4e/0x62 > acpi_put_table+0x40/0x4d > detect_intel_iommu+0x9d/0xed > pci_iommu_alloc+0x50/0x6c > mem_init+0xf/0x8a > start_kernel+0x21e/0x454 > x86_64_start_reservations+0x24/0x26 > x86_64_start_kernel+0x182/0x193 > start_cpu+0x14/0x14 > ---[ end trace 5e897a808e950ddc ]--- And the attached thing makes it go away for me. I'll post a proper patch shorlty. Cheers, Rafael
--- drivers/iommu/dmar.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) Index: linux-pm/drivers/iommu/dmar.c =================================================================== --- linux-pm.orig/drivers/iommu/dmar.c +++ linux-pm/drivers/iommu/dmar.c @@ -903,8 +903,10 @@ int __init detect_intel_iommu(void) x86_init.iommu.iommu_init = intel_iommu_init; #endif - acpi_put_table(dmar_tbl); - dmar_tbl = NULL; + if (dmar_tbl) { + acpi_put_table(dmar_tbl); + dmar_tbl = NULL; + } up_write(&dmar_global_lock); return ret ? 1 : -ENODEV;