diff mbox

[GIT,PULL] More ACPI updates for v4.10-rc1

Message ID CAJZ5v0goQvQ2e7XY_Y3w+T1HJmoZNzDS8pTTwrEOjF4-Ck+HfQ@mail.gmail.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Rafael J. Wysocki Jan. 5, 2017, 12:07 a.m. UTC
On Thu, Jan 5, 2017 at 12:46 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> On Wed, Jan 4, 2017 at 3:19 PM, Linus Torvalds
> <torvalds@linux-foundation.org> 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
diff mbox

Patch

---
 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;