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

Message ID CAJZ5v0goQvQ2e7XY_Y3w+T1HJmoZNzDS8pTTwrEOjF4-Ck+HfQ@mail.gmail.com
State New
Headers show

Commit Message

Rafael J. Wysocki Jan. 5, 2017, 12:07 a.m.
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

Patch hide | download patch | download mbox

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