lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6074707.jx9F3QFrWC@aspire.rjw.lan>
Date:   Sun, 08 Jul 2018 11:14:20 +0200
From:   "Rafael J. Wysocki" <rjw@...ysocki.net>
To:     Jeremy Linton <jeremy.linton@....com>
Cc:     erik.schmauss@...el.com,
        "linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-arm-kernel@...ts.infradead.org" 
        <linux-arm-kernel@...ts.infradead.org>,
        Lorenzo Pieralisi <lorenzo.pieralisi@....com>
Subject: Re: 4.18rc3 TX2 boot failure with "ACPICA: AML parser: attempt to continue loading table after error"

On Monday, July 2, 2018 11:41:42 PM CEST Jeremy Linton wrote:
> Hi,
> 
> I'm experiencing two problems with commit 5088814a6e931 which is 
> "ACPICA: AML parser: attempt to continue loading table after error"
> 
> The first is this boot failure on a thunderX2:
> 
> [   10.770098] ACPI Error: Ignore error and continue table load 
> (20180531/psobject-604)
>      [   10.777926] Unable to handle kernel NULL pointer dereference at 
> virtual address 0000000000000000
>      [   10.786809] Mem abort info:
>      [   10.789623]   ESR = 0x96000004
>      [   10.792702]   Exception class = DABT (current EL), IL = 32 bits
>      [   10.798682]   SET = 0, FnV = 0
>      [   10.801760]   EA = 0, S1PTW = 0
>      [   10.804925] Data abort info:
>      [   10.807827]   ISV = 0, ISS = 0x00000004
>      [   10.811698]   CM = 0, WnR = 0
>      [   10.814689] [0000000000000000] user address but active_mm is swapper
>      [   10.821108] Internal error: Oops: 96000004 [#1] SMP
>      [   10.826032] Modules linked in:
>      [   10.829113] CPU: 30 PID: 1 Comm: swapper/0 Not tainted 
> 4.18.0-rc3PPTT4k+ #53
>      [   10.836234] Hardware name: Default string Cavium 
> ThunderX2/Default string, BIOS L50_5.13_1.0.0 05/16/2018
>      [   10.845905] pstate: 00400009 (nzcv daif +PAN -UAO)
>      [   10.850746] pc : acpi_ps_peek_opcode+0x1c/0x40
>      [   10.855231] lr : acpi_ps_create_op+0x54/0x278
>      [   10.859627] sp : ffff000009a8ba30
>      [   10.862969] x29: ffff000009a8ba30 x28: 0000000054445353
>      [   10.868334] x27: 0000000000004008 x26: 0000000000000000
>      [   10.873698] x25: ffff000009767f23 x24: ffff000008d59000
>      [   10.879063] x23: ffff802672799030 x22: ffff000009a8bb28
>      [   10.884427] x21: 0000000000000000 x20: ffff000008d59000
>      [   10.889791] x19: ffff802672799030 x18: ffffffffffffffff
>      [   10.895155] x17: 0000000000000013 x16: 0000000000000000
>      [   10.900519] x15: ffff000008d59708 x14: 2d7463656a626f73
>      [   10.905883] x13: 702f313335303831 x12: 3032282064616f6c
>      [   10.911246] x11: 20656c6261742065 x10: 756e69746e6f6320
>      [   10.916610] x9 : 0000000000000058 x8 : ffff000008570998
>      [   10.921974] x7 : 203a726f72724520 x6 : 0000000000000334
>      [   10.927338] x5 : 0000000000000012 x4 : 0000000000000000
>      [   10.932701] x3 : 0000000000000000 x2 : ffff000009a8bb28
>      [   10.938065] x1 : 0000000000000000 x0 : ffff000008505790
>      [   10.943430] Process swapper/0 (pid: 1, stack limit = 
> 0x(____ptrval____))
>      [   10.950199] Call trace:
>      [   10.952663]  acpi_ps_peek_opcode+0x1c/0x40
>      [   10.956797]  acpi_ps_create_op+0x54/0x278
>      [   10.960842]  acpi_ps_parse_loop+0x1b4/0x6c8
>      [   10.965063]  acpi_ps_parse_aml+0xe0/0x2b4
>      [   10.969108]  acpi_ps_execute_table+0xa0/0x104
>      [   10.973505]  acpi_ns_execute_table+0x120/0x194
>      [   10.977989]  acpi_ns_parse_table+0x34/0x68
>      [   10.982122]  acpi_ns_load_table+0x4c/0xbc
>      [   10.986169]  acpi_tb_load_namespace+0x1d4/0x240
>      [   10.990744]  acpi_load_tables+0x50/0xbc
>      [   10.994614]  acpi_init+0xb8/0x374
>      [   10.997959]  do_one_initcall+0x54/0x208
>      [   11.001829]  kernel_init_freeable+0x224/0x300
>      [   11.006229]  kernel_init+0x18/0x118
>      [   11.009747]  ret_from_fork+0x10/0x18
>      [   11.013354] Code: aa0003f3 aa1e03e0 d503201f f9400661 (39400020)
>      [   11.019535] ---[ end trace 2bd8068593cf8acc ]---
>      [   11.024195] Kernel panic - not syncing: Fatal exception
>      [   11.029488] SMP: stopping secondary CPUs
>      [   11.033480] ---[ end Kernel panic - not syncing: Fatal exception 
> ]---
> 
> Which does appear to be the result of some bad data in the table, but it 
> was working with 4.17, and reverting this commit solves the problem.

Does the patch below make any difference?

---
 drivers/acpi/acpica/psobject.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-pm/drivers/acpi/acpica/psobject.c
===================================================================
--- linux-pm.orig/drivers/acpi/acpica/psobject.c
+++ linux-pm/drivers/acpi/acpica/psobject.c
@@ -39,6 +39,9 @@ static acpi_status acpi_ps_get_aml_opcod
 	ACPI_FUNCTION_TRACE_PTR(ps_get_aml_opcode, walk_state);
 
 	walk_state->aml = walk_state->parser_state.aml;
+	if (!walk_state->aml)
+		return AE_CTRL_PARSE_CONTINUE;
+
 	walk_state->opcode = acpi_ps_peek_opcode(&(walk_state->parser_state));
 
 	/*

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ