Bug 11032
Summary: | ACPI Error (nseval-0159): Insufficient arguments - method [_OSC] needs 5, found 4 [20080609] | ||
---|---|---|---|
Product: | ACPI | Reporter: | Alexander Beregalov (a.beregalov) |
Component: | Other | Assignee: | Robert Moore (Robert.Moore) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.26-rc8-next-20080702 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
acpidump output, gzipped
proposed patch proposed patch |
Description
Alexander Beregalov
2008-07-03 07:16:17 UTC
Please post the acpidump for the machine. What this error means is that the _OSC method on your machined defines 5 arguments, but is being called with only 4 arguments. It turns out that _OSC is *supposed* to have 4 arguments, so the call is is correct; it is the ASL on the machine that appears incorrect. From ACPI spec: _OSC - Operating System Capabilities Arguments: (4) Arg0 – A Buffer containing a UUID Arg1 – An Integer containing a Revision ID of the buffer format Arg2 – An Integer containg a count of entries in Arg3 Arg3 – A Buffer containing a list of DWORD capabilites Return Value: A Buffer containing a list of capabilities Created attachment 16728 [details]
acpidump output, gzipped
Here is the offending code: Method (_OSC, 5, NotSerialized) { Return (0x00) } the 5 should be a 4. You can make this change and override your DSDT. We may have to make this situation a warning instead of an error. Where I should change it? I can not find such line. it's in the DSDT. run acpixtract on the acpidump, this will produce a file containing the DSDT run iasl -d on the dsdt.dat file to get the disassembled ASl file We may want to change this error to just a warning. In this case, the number of arguments doesn't really matter since the method just returns zero and never looks at the arguments. I think we should drop the WARN_ON at least since AML can trigger this legitimately. Linus's tree does not have a warn_on_slowpath in acpi_ut_error. It's from Andrew's mm tree. Created attachment 17315 [details]
proposed patch
change error to warning if too few arguments were passed in
Created attachment 17320 [details] proposed patch wrong patch attached at comment #8, try this one. change error to warning if too few arguments were passed in patch available at ACPICA git tree. applied to acpi-test shipped in linux-2.6l.28-rc1 closed commit 93851b4d13de48753eaae76ed190eef7355e2c19 Author: Lin Ming <ming.m.lin@intel.com> Date: Sat Sep 27 10:38:07 2008 +0800 ACPICA: Reduce error to warning for incorrect method arg count Previously aborted with error if too few arguments were passed to a control method via the external ACPICA interface. Now issue a warning instead and continue. Handles the case where the method inadvertently declares too many arguments, but does not actually use the extra ones. Applies mainly to the predefined methods. |