On Mon, Jul 30, 2018 at 11:52:17AM +0200, Rafael J. Wysocki wrote:
On 7/27/2018 11:45 AM, Greg Kroah-Hartman wrote:
4.17-stable review patch. If anyone has any objections, please let me know.
From: Schmauss, Erik erik.schmauss@intel.com
commit 73c2a01c52b657f4a0ead6c95f64c5279efbd000 upstream.
The dispatcher and the executer process the parse nodes During table load. Error status from the evaluation confuses the AML parser. This results in the parser failing to complete parsing of the current scope op which becomes problematic. For the incorrect AML below, _ADR never gets created.
definition_block(...) { Scope (_SB) { Device (PCI0){...} Name (OBJ1, 0x0) OBJ1 = PCI0 + 5 // Results in an operand error. } // _SB not closed
// parser looks for \_SB._SB.PCI0, results in AE_NOT_FOUND error // Entire scope block gets skipped. Scope (\_SB.PCI0) { Name (_ADR, 0x0) }
}
Fix the above error by properly completing the initial _SB scope after an error by clearing errors that occur during table load. In the above case, this means that OBJ1 = PIC0 + 5 is skipped.
Fixes: 5088814a6e93 (ACPICA: AML parser: attempt to continue loading table after error) Link: https://bugzilla.kernel.org/show_bug.cgi?id=200363 Tested-by: Bastien Nocera hadess@hadess.net Signed-off-by: Erik Schmauss erik.schmauss@intel.com Cc: 4.17+ stable@vger.kernel.org # 4.17+ Signed-off-by: Rafael J. Wysocki rafael.j.wysocki@intel.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
Has this gone in already? If not, please hold on.
There is a fix on top of this that will go to Linus tomorrow: https://patchwork.kernel.org/patch/10548059/
Yes, it did, it is in 4.17.11, and I've already gotten a report about it :(
greg k-h