linux-stable/drivers/acpi/acpica
Erik Kaneda 57645ea316 ACPICA: Do not increment operation_region reference counts for field units
[ Upstream commit 6a54ebae6d ]

ACPICA commit e17b28cfcc31918d0db9547b6b274b09c413eb70

Object reference counts are used as a part of ACPICA's garbage
collection mechanism. This mechanism keeps track of references to
heap-allocated structures such as the ACPI operand objects.

Recent server firmware has revealed that this reference count can
overflow on large servers that declare many field units under the
same operation_region. This occurs because each field unit declaration
will add a reference count to the source operation_region.

This change solves the reference count overflow for operation_regions
objects by preventing fieldunits from incrementing their
operation_region's reference count. Each operation_region's reference
count will not be changed by named objects declared under the Field
operator. During namespace deletion, the operation_region namespace
node will be deleted and each fieldunit will be deleted without
touching the deleted operation_region object.

Link: https://github.com/acpica/acpica/commit/e17b28cf
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-08-21 09:48:06 +02:00
..
acapps.h ACPICA: Tools: Deallocate memory allocated by ac_get_all_tables_from_file via ac_delete_table_list 2017-07-20 16:38:23 +02:00
accommon.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acconvert.h ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
acdebug.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acdispat.h ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
acevents.h ACPICA: Never run _REG on system_memory and system_IO 2019-11-24 08:23:05 +01:00
acglobal.h ACPICA: Changed Gbl_disasm_flag to acpi_gbl_disasm_flag 2017-06-27 22:25:23 +02:00
achware.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acinterp.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
aclocal.h ACPICA: Never run _REG on system_memory and system_IO 2019-11-24 08:23:05 +01:00
acmacros.h ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
acnamesp.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acobject.h ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
acopcode.h ACPICA: Changing External to a named object 2017-06-27 22:25:23 +02:00
acparser.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acpredef.h ACPICA: Add support for _HMA as a predefined method 2017-06-12 14:58:37 +02:00
acresrc.h ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource 2017-06-12 14:58:40 +02:00
acstruct.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
actables.h ACPICA: Tables: Combine checksum/duplication verification together 2017-07-20 16:38:25 +02:00
acutils.h ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
amlcode.h ACPICA: Fix a type value overlap in the AML support file 2017-06-12 14:58:40 +02:00
amlresrc.h ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource 2017-06-12 14:58:40 +02:00
dbcmds.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbconvert.c scripts/spelling.txt: add "an union" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
dbdisply.c ACPICA: Debugger: Improve support for Alias objects 2017-08-03 23:34:17 +02:00
dbexec.c ACPICA: acpiexec: enhance local signal handler 2017-06-27 22:25:27 +02:00
dbfileio.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbhistry.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbinput.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbmethod.c ACPICA: debugger: fix memory leak on Pathname 2017-04-27 00:31:00 +02:00
dbnames.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbobject.c ACPICA: Debugger/acpiexec: Cleanup error messages 2017-06-12 14:58:42 +02:00
dbstats.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbtest.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbutils.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dbxface.c ACPICA: Update a couple of debug output messages 2017-06-27 22:25:28 +02:00
dsargs.c ACPICA: Improvements for debug output only 2017-06-27 22:25:26 +02:00
dscontrol.c ACPICA: Cleanup AML opcode definitions, no functional change 2017-04-27 00:31:00 +02:00
dsdebug.c ACPICA: Debugger/acpiexec: Cleanup error messages 2017-06-12 14:58:42 +02:00
dsfield.c ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1 2020-02-28 16:36:01 +01:00
dsinit.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dsmethod.c ACPICA: acpiexec: enhance local signal handler 2017-06-27 22:25:27 +02:00
dsmthdat.c ACPICA: Cleanup AML opcode definitions, no functional change 2017-04-27 00:31:00 +02:00
dsobject.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
dsopcode.c ACPICA: AML interpreter: add region addresses in global list during initialization 2019-05-16 19:42:25 +02:00
dspkginit.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
dsutils.c ACPICA: Dispatcher: Remove unnecessary call to debugger 2017-06-12 14:58:42 +02:00
dswexec.c ACPICA: Improvements for debug output only 2017-06-27 22:25:26 +02:00
dswload.c ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1 2020-02-28 16:36:01 +01:00
dswload2.c ACPICA: Disassembler: add external op to namespace on first pass 2017-06-27 22:25:25 +02:00
dswscope.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
dswstate.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evevent.c ACPICA: Events: add a return on failure from acpi_hw_register_read 2018-05-30 07:52:31 +02:00
evglock.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evgpe.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evgpeblk.c ACPICA: Make it possible to enable runtime GPEs earlier 2017-08-17 20:54:33 +02:00
evgpeinit.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evgpeutil.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evhandler.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evmisc.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evregion.c ACPICA: Never run _REG on system_memory and system_IO 2019-11-24 08:23:05 +01:00
evrgnini.c ACPICA: Never run _REG on system_memory and system_IO 2019-11-24 08:23:05 +01:00
evsci.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evxface.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
evxfevnt.c ACPICA: Events: Add runtime stub support for event APIs 2017-06-12 14:58:41 +02:00
evxfgpe.c ACPICA: Make it possible to enable runtime GPEs earlier 2017-08-17 20:54:33 +02:00
evxfregn.c ACPICA: Never run _REG on system_memory and system_IO 2019-11-24 08:23:05 +01:00
exconcat.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exconfig.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exconvrt.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
excreate.c ACPICA: Interpreter: Update handling for Alias operator 2017-08-03 23:34:17 +02:00
exdebug.c ACPICA: Simplify output for the ACPI Debug Object 2017-06-27 22:25:27 +02:00
exdump.c ACPICA: Debugger: Improve support for Alias objects 2017-08-03 23:34:17 +02:00
exfield.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exfldio.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exmisc.c ACPICA: Ensure all instances of AE_AML_INTERNAL have error messages 2017-08-03 23:34:17 +02:00
exmutex.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exnames.c ACPICA: Cleanup AML opcode definitions, no functional change 2017-04-27 00:31:00 +02:00
exoparg1.c ACPICA: Fix for Device/Thermal objects with ObjectType and DerefOf 2017-06-27 22:25:22 +02:00
exoparg2.c ACPICA: Ensure all instances of AE_AML_INTERNAL have error messages 2017-08-03 23:34:17 +02:00
exoparg3.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exoparg6.c ACPICA: Cleanup AML opcode definitions, no functional change 2017-04-27 00:31:00 +02:00
exprep.c ACPICA: Do not increment operation_region reference counts for field units 2020-08-21 09:48:06 +02:00
exregion.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exresnte.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exresolv.c ACPICA: Fix for Device/Thermal objects with ObjectType and DerefOf 2017-06-27 22:25:22 +02:00
exresop.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exstore.c ACPICA: Cleanup AML opcode definitions, no functional change 2017-04-27 00:31:00 +02:00
exstoren.c ACPICA: Cleanup AML opcode definitions, no functional change 2017-04-27 00:31:00 +02:00
exstorob.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exsystem.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
extrace.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
exutils.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwacpi.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwesleep.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwgpe.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwpci.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwregs.c ACPICA: Divergences: reduce access size definitions 2017-08-03 23:34:15 +02:00
hwsleep.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwtimer.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwvalid.c ACPICA: Fix several incorrect invocations of ACPICA return macro 2017-04-27 00:31:00 +02:00
hwxface.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
hwxfsleep.c Back port of "ACPICA: Use designated initializers" 2017-07-20 16:38:24 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nsaccess.c ACPICA: Namespace: Update/fix an error message 2017-08-03 23:34:15 +02:00
nsalloc.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsarguments.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
nsconvert.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsdump.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsdumpdv.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nseval.c ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c 2018-05-30 07:52:31 +02:00
nsinit.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
nsload.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsnames.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
nsobject.c ACPICA: Namespace: remove address node from global list after method termination 2019-05-16 19:42:30 +02:00
nsparse.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nspredef.c scripts/spelling.txt: add "an union" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
nsprepkg.c ACPICA: Ensure all instances of AE_AML_INTERNAL have error messages 2017-08-03 23:34:17 +02:00
nsrepair.c ACPICA: Update for automatic repair code for objects returned by evaluate_object 2017-04-27 00:31:00 +02:00
nsrepair2.c ACPICA: Update for automatic repair code for objects returned by evaluate_object 2017-04-27 00:31:00 +02:00
nssearch.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsutils.c ACPICA: Update a couple of debug output messages 2017-06-27 22:25:28 +02:00
nswalk.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsxfeval.c ACPICA: Fix acpi_evaluate_object_typed() 2017-08-22 22:44:13 +02:00
nsxfname.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
nsxfobj.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
psargs.c ACPICA: Fix memory leak on unusual memory leak 2018-05-30 07:52:31 +02:00
psloop.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
psobject.c ACPICA: Disassembler: skip parsing of incorrect external declarations 2017-07-20 16:38:26 +02:00
psopcode.c ACPICA: Changing External to a named object 2017-06-27 22:25:23 +02:00
psopinfo.c ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
psparse.c ACPICA: acpiexec: enhance local signal handler 2017-06-27 22:25:27 +02:00
psscope.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
pstree.c ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
psutils.c ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
pswalk.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
psxface.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rsaddr.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rscalc.c ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource 2017-06-12 14:58:40 +02:00
rscreate.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rsdump.c ACPICA: ACPI 6.2: Add support for PinGroupFunction() resource 2017-06-12 14:58:39 +02:00
rsdumpinfo.c ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource 2017-06-12 14:58:40 +02:00
rsinfo.c ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource 2017-06-12 14:58:40 +02:00
rsio.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rsirq.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rslist.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rsmemory.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rsmisc.c ACPICA: Core: Always set GPIO VendorOffset 2017-06-12 14:58:40 +02:00
rsserial.c ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource 2017-06-12 14:58:40 +02:00
rsutils.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
rsxface.c ACPICA: Resources: Allow _DMA method in walk resources 2017-08-03 23:34:17 +02:00
tbdata.c ACPICA: Tables: Add deferred table verification support 2017-07-20 16:38:25 +02:00
tbfadt.c ACPICA: Update comments, no functional change 2017-06-27 22:25:21 +02:00
tbfind.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
tbinstal.c ACPICA: Tables: Combine checksum/duplication verification together 2017-07-20 16:38:25 +02:00
tbprint.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
tbutils.c Merge back ACPICA material for v4.13. 2017-06-27 22:26:44 +02:00
tbxface.c ACPICA: Tables: Add deferred table verification support 2017-07-20 16:38:25 +02:00
tbxfload.c ACPICA: Tables: Do not validate signature for dynamic table load 2017-07-20 16:38:25 +02:00
tbxfroot.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utaddress.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utalloc.c ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
utascii.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utbuffer.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utcache.c ACPICA: Local cache support: Allow small cache objects 2017-04-27 00:31:01 +02:00
utcopy.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utdebug.c ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
utdecode.c ACPICA: Utilities: Make a notify value reserved 2017-06-12 14:51:41 +02:00
utdelete.c ACPICA: Do not increment operation_region reference counts for field units 2020-08-21 09:48:06 +02:00
uterror.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
uteval.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utexcep.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utglobal.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
uthex.c ACPICA: CLib: Add short multiply/shift support 2017-08-03 23:34:16 +02:00
utids.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utinit.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utlock.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utmath.c ACPICA: CLib: Add short multiply/shift support 2017-08-03 23:34:16 +02:00
utmisc.c ACPICA: Ensure all instances of AE_AML_INTERNAL have error messages 2017-08-03 23:34:17 +02:00
utmutex.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utnonansi.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utobject.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
utosi.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utownerid.c ACPICA: Explicitly cast 1 to u32 2017-06-12 14:58:41 +02:00
utpredef.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utprint.c ACPICA: EFI/EDK2: Cleanup to enable /WX for MSVC builds 2017-08-03 23:34:16 +02:00
utresdecode.c ACPICA: Split resource descriptor decode strings to a new file 2017-06-27 22:25:20 +02:00
utresrc.c ACPICA: Revert "Update resource descriptor handling" 2017-08-03 23:34:18 +02:00
utstate.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
utstring.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utstrtoul64.c ACPICA: CLib: Add short multiply/shift support 2017-08-03 23:34:16 +02:00
uttrack.c ACPICA: Implement deferred resolution of reference package elements 2017-08-03 23:34:17 +02:00
utuuid.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utxface.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utxferror.c ACPICA: Update some function headers, no funtional change 2017-04-27 00:30:59 +02:00
utxfinit.c ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
utxfmutex.c ACPICA: Export the public mutex interfaces 2017-06-12 14:58:42 +02:00