linux/drivers/acpi/acpica
Erik Schmauss c5781ffbbd ACPICA: Namespace: remove address node from global list after method termination
ACPICA commit b233720031a480abd438f2e9c643080929d144c3

ASL operation_regions declare a range of addresses that it uses. In a
perfect world, the range of addresses should be used exclusively by
the AML interpreter. The OS can use this information to decide which
drivers to load so that the AML interpreter and device drivers use
different regions of memory.

During table load, the address information is added to a global
address range list. Each node in this list contains an address range
as well as a namespace node of the operation_region. This list is
deleted at ACPI shutdown.

Unfortunately, ASL operation_regions can be declared inside of control
methods. Although this is not recommended, modern firmware contains
such code. New module level code changes unintentionally removed the
functionality of adding and removing nodes to the global address
range list.

A few months ago, support for adding addresses has been re-
implemented. However, the removal of the address range list was
missed and resulted in some systems to crash due to the address list
containing bogus namespace nodes from operation_regions declared in
control methods. In order to fix the crash, this change removes
dynamic operation_regions after control method termination.

Link: https://github.com/acpica/acpica/commit/b2337200
Link: https://bugzilla.kernel.org/show_bug.cgi?id=202475
Fixes: 4abb951b73 ("ACPICA: AML interpreter: add region addresses in global list during initialization")
Reported-by: Michael J Gruber <mjg@fedoraproject.org>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Cc: 4.20+ <stable@vger.kernel.org> # 4.20+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-04-09 10:05:11 +02:00
..
Makefile ACPICA: Remove PCI bits from ACPICA when CONFIG_PCI is unset 2018-12-20 10:19:49 +01:00
acapps.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
accommon.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acconvert.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acdebug.h ACPICA: Debugger: Fix possible fault with the "test objects" command 2019-02-18 11:21:10 +01:00
acdispat.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acevents.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acglobal.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
achware.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acinterp.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
aclocal.h ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
acmacros.h ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
acnamesp.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acobject.h ACPICA: ACPI 6.3: add PCC operation region support for AML interpreter 2019-02-24 21:11:20 +01:00
acopcode.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acparser.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acpredef.h ACPICA: ACPI 6.3: Adding predefined methods _NBS, _NCH, _NIC, _NIH, and _NIG 2019-02-18 11:21:11 +01:00
acresrc.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acstruct.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
actables.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
acutils.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
amlcode.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
amlresrc.h ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dbcmds.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
dbconvert.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
dbdisply.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
dbexec.c ACPICA: Update/clarify messages for control method failures 2019-02-18 11:21:10 +01:00
dbfileio.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
dbhistry.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dbinput.c ACPICA: Debugger: Cleanup interface to the AML disassembler 2018-08-14 23:49:13 +02:00
dbmethod.c ACPICA: Debugger: Cleanup interface to the AML disassembler 2018-08-14 23:49:13 +02:00
dbnames.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
dbobject.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
dbstats.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
dbtest.c ACPICA: Debugger: Fix possible fault with the "test objects" command 2019-02-18 11:21:10 +01:00
dbutils.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
dbxface.c ACPICA: Debugger: refactor to fix unused variable warning 2018-11-08 18:41:47 +01:00
dsargs.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dscontrol.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dsdebug.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dsfield.c ACPICA: ACPI 6.3: add PCC operation region support for AML interpreter 2019-02-24 21:11:20 +01:00
dsinit.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dsmethod.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dsmthdat.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
dsobject.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dsopcode.c ACPICA: Interpreter: Emit warning for creation of a zero-length op region 2019-02-18 11:21:10 +01:00
dspkginit.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dsutils.c ACPICA: Remove defines that use deprecated flag 2018-12-13 22:40:51 +01:00
dswexec.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dswload.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dswload2.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
dswscope.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
dswstate.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evevent.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evglock.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evgpe.c ACPICA: Clear status of GPEs before enabling them 2019-03-28 10:27:02 +01:00
evgpeblk.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evgpeinit.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evgpeutil.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evhandler.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evmisc.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evregion.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
evrgnini.c ACPICA: Remove legacy module-level code support 2019-02-18 11:21:10 +01:00
evsci.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
evxface.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evxfevnt.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
evxfgpe.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
evxfregn.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exconcat.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exconfig.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exconvrt.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
excreate.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exdebug.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exdump.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exfield.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
exfldio.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exmisc.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exmutex.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exnames.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exoparg1.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exoparg2.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exoparg3.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exoparg6.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exprep.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exregion.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exresnte.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exresolv.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exresop.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exserial.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
exstore.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exstoren.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exstorob.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exsystem.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
extrace.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
exutils.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
hwacpi.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwesleep.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwgpe.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwpci.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
hwregs.c ACPICA: ACPICA: add status check for acpi_hw_read before assigning return value 2018-08-14 23:49:13 +02:00
hwsleep.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwtimer.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwvalid.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwxface.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
hwxfsleep.c ACPICA: Get rid of acpi_sleep_dispatch() 2019-02-07 12:21:33 +01:00
nsaccess.c ACPICA: iASL: Enhance error detection 2018-11-08 18:41:47 +01:00
nsalloc.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
nsarguments.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsconvert.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsdump.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsdumpdv.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nseval.c ACPICA: Debug output: Add option to display method/object evaluation 2018-12-13 22:40:51 +01:00
nsinit.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsload.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
nsnames.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
nsobject.c ACPICA: Namespace: remove address node from global list after method termination 2019-04-09 10:05:11 +02:00
nsparse.c ACPICA: Remove legacy module-level code support 2019-02-18 11:21:10 +01:00
nspredef.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsprepkg.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsrepair.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsrepair2.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nssearch.c ACPICA: Revert "iASL: change processing of external op namespace nodes for correctness" 2018-07-09 11:14:45 +02:00
nsutils.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
nswalk.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsxfeval.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
nsxfname.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
nsxfobj.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
psargs.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
psloop.c ACPICA: Remove legacy module-level code support 2019-02-18 11:21:10 +01:00
psobject.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
psopcode.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
psopinfo.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
psparse.c ACPICA: Update/clarify messages for control method failures 2019-02-18 11:21:10 +01:00
psscope.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
pstree.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
psutils.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
pswalk.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
psxface.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
rsaddr.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rscalc.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rscreate.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsdump.c ACPICA: Fix potential infinite loop in acpi_rs_dump_byte_list 2018-05-15 10:16:10 +02:00
rsdumpinfo.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
rsinfo.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsio.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsirq.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
rslist.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsmemory.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsmisc.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsserial.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
rsutils.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
rsxface.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
tbdata.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
tbfadt.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
tbfind.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
tbinstal.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
tbprint.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
tbutils.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
tbxface.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
tbxfload.c ACPICA: Remove legacy module-level code support 2019-02-18 11:21:10 +01:00
tbxfroot.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utaddress.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utalloc.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utascii.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utbuffer.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utcache.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utcopy.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utdebug.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utdecode.c ACPICA: ACPI 6.3: add Error Disconnect Recover Notification value 2019-02-24 21:11:59 +01:00
utdelete.c ACPICA: ACPI 6.3: add PCC operation region support for AML interpreter 2019-02-24 21:11:20 +01:00
uterror.c ACPICA: Update/clarify messages for control method failures 2019-02-18 11:21:10 +01:00
uteval.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utexcep.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utglobal.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
uthex.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utids.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utinit.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utlock.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utmath.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utmisc.c ACPICA: disassembler: disassemble OEMx tables as AML 2018-12-13 22:40:51 +01:00
utmutex.c ACPICA: Convert acpi_gbl_hardware lock back to an acpi_raw_spinlock 2018-05-10 17:18:45 +02:00
utnonansi.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utobject.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utosi.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utownerid.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utpredef.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utprint.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utresdecode.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utresrc.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utstate.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00
utstring.c ACPICA: Improve error messages for the namespace root node 2018-05-15 10:16:10 +02:00
utstrsuppt.c ACPICA: Utilities: split hex detection into smaller functions 2018-08-14 23:49:13 +02:00
utstrtoul64.c ACPICA: Utilities: split hex detection into smaller functions 2018-08-14 23:49:13 +02:00
uttrack.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utuuid.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utxface.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utxferror.c ACPICA: Convert more ACPI errors to firmware errors 2019-01-15 18:04:02 +01:00
utxfinit.c ACPICA: All acpica: Update copyrights to 2019 2019-01-15 18:04:02 +01:00
utxfmutex.c ACPICA: adding SPDX headers 2018-03-18 19:08:05 +01:00