WSL2-Linux-Kernel/drivers/acpi/acpica
Rafael J. Wysocki e8e98aa124 ACPICA: Avoid evaluating methods too early during system resume
[ Upstream commit d3c4b6f64a ]

ACPICA commit 0762982923f95eb652cf7ded27356b247c9774de

During wakeup from system-wide sleep states, acpi_get_sleep_type_data()
is called and it tries to get memory from the slab allocator in order
to evaluate a control method, but if KFENCE is enabled in the kernel,
the memory allocation attempt causes an IRQ work to be queued and a
self-IPI to be sent to the CPU running the code which requires the
memory controller to be ready, so if that happens too early in the
wakeup path, it doesn't work.

Prevent that from taking place by calling acpi_get_sleep_type_data()
for S0 upfront, when preparing to enter a given sleep state, and
saving the data obtained by it for later use during system wakeup.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214271
Reported-by: Reik Keutterling <spielkind@gmail.com>
Tested-by: Reik Keutterling <spielkind@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 19:16:14 +01:00
..
Makefile
acapps.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
accommon.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acconvert.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acdebug.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acdispat.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acevents.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acglobal.h ACPICA: Avoid evaluating methods too early during system resume 2021-11-18 19:16:14 +01:00
achware.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acinterp.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
aclocal.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acmacros.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acnamesp.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acobject.h ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling 2021-02-19 16:03:25 +01:00
acopcode.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acparser.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acpredef.h ACPICA: ACPI 6.4: add CXL ACPI device ID and _CBR object 2021-04-07 19:09:00 +02:00
acresrc.h ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
acstruct.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
actables.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
acutils.h ACPICA: Add support for PlatformRtMechanism OperationRegion handler 2021-06-07 14:04:43 +02:00
amlcode.h ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
amlresrc.h ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
dbcmds.c
dbconvert.c ACPICA: debugger: remove leading whitespaces when converting a string to a buffer 2019-10-28 22:12:46 +01:00
dbdisply.c ACPICA: iASL: add new OperationRegion subtype keyword PlatformRtMechanism 2020-06-05 13:34:23 +02:00
dbexec.c ACPICA: Debugger: Add a new command: "ALL <NameSeg>" 2020-10-08 18:03:55 +02:00
dbfileio.c ACPICA: make acpi_load_table() return table index 2019-10-28 22:12:46 +01:00
dbhistry.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dbinput.c ACPICA: add type casts for string functions 2021-01-22 15:51:53 +01:00
dbmethod.c ACPICA: Debugger: Add a new command: "ALL <NameSeg>" 2020-10-08 18:03:55 +02:00
dbnames.c ACPICA: debugger: surround field unit output with braces '{' 2019-10-28 22:12:46 +01:00
dbobject.c ACPICA: Clean up exception code class checks 2021-01-18 16:01:10 +01:00
dbstats.c ACPICA: Fully deploy ACPI_PRINTF_LIKE macro 2019-08-21 00:00:37 +02:00
dbtest.c ACPICA: Debugger: Fix possible fault with the "test objects" command 2019-02-18 11:21:10 +01:00
dbutils.c
dbxface.c ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support 2020-03-30 14:52:32 +02:00
dsargs.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dscontrol.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsdebug.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsfield.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsinit.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsmethod.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsmthdat.c
dsobject.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsopcode.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dspkginit.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dsutils.c
dswexec.c ACPICA: Fix an if statement (add parens) 2021-08-16 16:47:01 +02:00
dswload.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dswload2.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dswscope.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
dswstate.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evevent.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evglock.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evgpe.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evgpeblk.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evgpeinit.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evgpeutil.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evhandler.c ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling 2021-02-19 16:03:25 +01:00
evmisc.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evregion.c ACPICA: Remove some code duplication from acpi_ev_address_space_dispatch 2021-02-19 16:03:25 +01:00
evrgnini.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evsci.c
evxface.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evxfevnt.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evxfgpe.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
evxfregn.c ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling 2021-02-19 16:03:25 +01:00
exconcat.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exconfig.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exconvrt.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
excreate.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exdebug.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exdump.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exfield.c ACPICA: Add support for PlatformRtMechanism OperationRegion handler 2021-06-07 14:04:43 +02:00
exfldio.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exmisc.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exmutex.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exnames.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exoparg1.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exoparg2.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exoparg3.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exoparg6.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exprep.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exregion.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exresnte.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exresolv.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exresop.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exserial.c ACPICA: Add support for PlatformRtMechanism OperationRegion handler 2021-06-07 14:04:43 +02:00
exstore.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exstoren.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exstorob.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exsystem.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
extrace.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
exutils.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
hwacpi.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
hwesleep.c ACPICA: Avoid evaluating methods too early during system resume 2021-11-18 19:16:14 +01:00
hwgpe.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
hwpci.c
hwregs.c
hwsleep.c ACPICA: Avoid evaluating methods too early during system resume 2021-11-18 19:16:14 +01:00
hwtimer.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
hwvalid.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
hwxface.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
hwxfsleep.c ACPICA: Avoid evaluating methods too early during system resume 2021-11-18 19:16:14 +01:00
nsaccess.c ACPICA: Always create namespace nodes using acpi_ns_create_node() 2021-03-24 14:50:54 +01:00
nsalloc.c ACPICA: Remove unnecessary semicolon 2020-10-08 18:03:56 +02:00
nsarguments.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsconvert.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsdump.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsdumpdv.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nseval.c ACPICA: remove legacy module-level code due to deprecation 2019-07-04 00:59:43 +02:00
nsinit.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsload.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsnames.c ACPICA: Fixes for acpiExec namespace init file 2020-03-30 14:52:33 +02: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: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nspredef.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsprepkg.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsrepair.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsrepair2.c Revert "ACPICA: Fix memory leak caused by _CID repair function" 2021-08-03 18:14:44 +02:00
nssearch.c
nsutils.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nswalk.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsxfeval.c
nsxfname.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
nsxfobj.c ACPICA: Tree-wide: fix various typos and spelling mistakes 2020-10-08 18:03:55 +02:00
psargs.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psloop.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psobject.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psopcode.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psopinfo.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psparse.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psscope.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
pstree.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psutils.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
pswalk.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
psxface.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
rsaddr.c
rscalc.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rscreate.c ACPICA: More Clang changes 2019-10-28 22:12:46 +01:00
rsdump.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rsdumpinfo.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rsinfo.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rsio.c
rsirq.c ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
rslist.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rsmemory.c
rsmisc.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rsserial.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
rsutils.c
rsxface.c ACPICA: Rename nameseg compare macro for clarity 2019-04-09 10:08:28 +02:00
tbdata.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbfadt.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbfind.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbinstal.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbprint.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbutils.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbxface.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbxfload.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
tbxfroot.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utaddress.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utalloc.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utascii.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utbuffer.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utcache.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utcopy.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utdebug.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utdecode.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utdelete.c ACPICA: Clean up context mutex during object deletion 2021-05-31 13:56:33 +02:00
uterror.c ACPICA: Increase total number of possible Owner IDs 2019-08-21 00:00:36 +02:00
uteval.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utexcep.c
utglobal.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
uthex.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utids.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utinit.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utlock.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utmath.c
utmisc.c ACPICA: Rename nameseg compare macro for clarity 2019-04-09 10:08:28 +02:00
utmutex.c
utnonansi.c
utobject.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utosi.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utownerid.c ACPICA: Increase total number of possible Owner IDs 2019-08-21 00:00:36 +02:00
utpredef.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utprint.c ACPICA: Use ACPI_FALLTHROUGH 2021-06-07 14:04:43 +02:00
utresdecode.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
utresrc.c ACPICA: ACPI 6.4: add CSI2Bus resource template 2021-04-07 19:09:01 +02:00
utstate.c
utstring.c ACPICA: Rename nameseg length macro/define for clarity 2019-04-09 11:24:48 +02:00
utstrsuppt.c ACPICA: add type casts for string functions 2021-01-22 15:51:53 +01:00
utstrtoul64.c
uttrack.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utuuid.c ACPICA: Add support for PlatformRtMechanism OperationRegion handler 2021-06-07 14:04:43 +02:00
utxface.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utxferror.c
utxfinit.c ACPICA: Updated all copyrights to 2021 2021-01-22 15:51:53 +01:00
utxfmutex.c