All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Schmauss, Erik" <erik.schmauss@intel.com>
To: "Schmauss, Erik" <erik.schmauss@intel.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>
Cc: Linux ACPI <linux-acpi@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: RE: [GIT PULL] ACPI fix for v4.18-rc7
Date: Sat, 28 Jul 2018 00:02:38 +0000	[thread overview]
Message-ID: <CF6A88132359CE47947DB4C6E1709ED53BB4FB62@ORSMSX110.amr.corp.intel.com> (raw)
In-Reply-To: <CF6A88132359CE47947DB4C6E1709ED53BB4FB32@ORSMSX110.amr.corp.intel.com>



> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Schmauss, Erik
> Sent: Friday, July 27, 2018 2:51 PM
> To: Linus Torvalds <torvalds@linux-foundation.org>; Rafael J. Wysocki
> <rafael@kernel.org>
> Cc: Linux ACPI <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>
> Subject: RE: [GIT PULL] ACPI fix for v4.18-rc7
> 
> 
> 
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > owner@vger.kernel.org] On Behalf Of Linus Torvalds
> > Sent: Friday, July 27, 2018 11:38 AM
> > To: Rafael J. Wysocki <rafael@kernel.org>
> > Cc: Linux ACPI <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List
> > <linux- kernel@vger.kernel.org>
> > Subject: Re: [GIT PULL] ACPI fix for v4.18-rc7
> >
> > My XPS13 laptop is unhappy with something recent.
> >
> > As of yesterday, I get this at bootup:
> >
> >   ACPI: Added _OSI(Module Device)
> >   ACPI: Added _OSI(Processor Device)
> >   ACPI: Added _OSI(3.0 _SCP Extensions)
> >   ACPI: Added _OSI(Processor Aggregator Device)
> >   ACPI: Added _OSI(Linux-Dell-Video)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI Error: Result stack is empty! State=(____ptrval____)
> > (20180531/dswstate-65)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, Missing or null operand
> > (20180531/dsutils-612)
> >   ACPI Error: AE_AML_NO_RETURN_VALUE, While creating Arg 0
> > (20180531/dsutils-727)
> >   ACPI: 9 ACPI AML tables successfully acquired and loaded
> >
> > It does *not* happen in
> >
> >     Linux version 4.18.0-rc6-00110-g6e77b267723c
> >
> > but it *does* happen in
> >
> >     Linux version 4.18.0-rc6-00152-gcd3f77d74ac3
> >
> > and while I didn't bisect it, I'm assuming it's due to 73c2a01c52b6
> > ("ACPICA: AML Parser: ignore dispatcher error status during table
> > load")
> >
> > Ideas?
> 
> Sorry about the breakage. I found the cause this failure and I'm working on a fix
> right now.
> 
> Erik

Hi,

The patch below should be able to fix this.


From a828a091828599154d8f6e8bfee1495a3df5cf34 Mon Sep 17 00:00:00 2001
From: Erik Schmauss <erik.schmauss@intel.com>
Date: Fri, 27 Jul 2018 15:37:35 -0700
From: Erik Schmauss <erik.schmauss@intel.com>
Subject: [PATCH 1] ACPICA: AML Parser: ignore control method status in module-level code

Previous change in the AML parser code blindly set all non-successful
dispatcher statuses to AE_OK. This approach is incorrect because
successful control method invocations from module-level return
AE_CTRL_TRANSFER. Overwriting AE_OK to this status causes the AML
parser to think that there was no return value from the control
method invocation.

fixes: 73c2a01c52b6 (ACPICA: AML Parser: ignore dispatcher error status during table load)

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
---
 psloop.c |   19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff -Nurp linux.before_name/drivers/acpi/acpica/psloop.c linux.after_name/drivers/acpi/acpica/psloop.c
--- linux.before_name/drivers/acpi/acpica/psloop.c	2018-07-27 15:53:31.073522915 -0700
+++ linux.after_name/drivers/acpi/acpica/psloop.c	2018-07-27 15:53:25.320522527 -0700
@@ -714,15 +714,20 @@ acpi_status acpi_ps_parse_loop(struct ac
 			} else
 			    if ((walk_state->
 				 parse_flags & ACPI_PARSE_MODULE_LEVEL)
+				&& status != AE_CTRL_TRANSFER
 				&& ACPI_FAILURE(status)) {
 				/*
-				 * ACPI_PARSE_MODULE_LEVEL means that we are loading a table by
-				 * executing it as a control method. However, if we encounter
-				 * an error while loading the table, we need to keep trying to
-				 * load the table rather than aborting the table load. Set the
-				 * status to AE_OK to proceed with the table load. If we get a
-				 * failure at this point, it means that the dispatcher got an
-				 * error while processing Op (most likely an AML operand error.
+				 * ACPI_PARSE_MODULE_LEVEL flag means that we are currently
+				 * loading a table by executing it as a control method.
+				 * However, if we encounter an error while loading the table,
+				 * we need to keep trying to load the table rather than
+				 * aborting the table load (setting the status to AE_OK
+				 * continues the table load). If we get a failure at this
+				 * point, it means that the dispatcher got an error while
+				 * processing Op (most likely an AML operand error) or a
+				 * control method was called from module level and the
+				 * dispatcher returned AE_CTRL_TRANSFER. In the latter case,
+				 * leave the status alone, there's nothing wrong with it.
 				 */
 				status = AE_OK;
 			}


> 
> >
> > Note only the errors are new. On older kernels, I just get:
> >
> >   ACPI: Added _OSI(Module Device)
> >   ACPI: Added _OSI(Processor Device)
> >   ACPI: Added _OSI(3.0 _SCP Extensions)
> >   ACPI: Added _OSI(Processor Aggregator Device)
> >   ACPI: Added _OSI(Linux-Dell-Video)
> >   ACPI: 9 ACPI AML tables successfully acquired and loaded
> >
> > without the big slew of errors.
> >
> >           Linus
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> > in the body of a message to majordomo@vger.kernel.org More majordomo
> > info at http://vger.kernel.org/majordomo-info.html
> \x13  칻\x1c & ~ & \x18  +-  ݶ\x17  w  ˛   m b  Zr    ^n r   z \x1a  h    &  \x1e G   h \x03( 階 ݢj"  \x1a ^[m     z ޖ   f
> h   ~ m

  reply	other threads:[~2018-07-28  0:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-26 14:13 [GIT PULL] ACPI fix for v4.18-rc7 Rafael J. Wysocki
2018-07-27 18:37 ` Linus Torvalds
2018-07-27 21:51   ` Schmauss, Erik
2018-07-28  0:02     ` Schmauss, Erik [this message]
2018-07-28  1:30       ` Linus Torvalds
2018-07-28  3:20         ` Len Brown
2018-07-28 16:59       ` Oleksandr Natalenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CF6A88132359CE47947DB4C6E1709ED53BB4FB62@ORSMSX110.amr.corp.intel.com \
    --to=erik.schmauss@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.