2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 11:44:01 +08:00
linux-next/drivers/acpi/acpica
Rafael J. Wysocki 7c2e17714e ACPICA: Introduce acpi_get_data_full() and rework acpi_get_data()
Introduce a new function, acpi_get_data_full(), working in analogy
with acpi_get_data() except that it can execute a callback provided
as its 4th argument right after acpi_ns_get_attached_data() has
returned a success.

That will allow Linux to reference count the object pointed to by
*data before the namespace mutex is released so as to ensure that it
will not be freed going forward until the reference to it acquired
by acpi_get_data_full() is dropped.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2014-02-05 17:41:16 +01:00
..
accommon.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acdebug.h ACPICA: Linuxize: Cleanup spaces after special macro invocations. 2014-01-08 15:31:39 +01:00
acdispat.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acevents.h ACPICA: Linuxize: Cleanup spaces after special macro invocations. 2014-01-08 15:31:39 +01:00
acglobal.h ACPICA: Remove bool usage from ACPICA. 2014-01-27 23:59:08 +01:00
achware.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acinterp.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
aclocal.h ACPICA: Disassembler: Improve pathname support for emitted External() statements. 2014-01-08 15:31:36 +01:00
acmacros.h ACPICA: Cleanup memory allocation macros and configurability. 2013-10-30 12:24:21 +01:00
acnamesp.h ACPICA: Debugger: Add new command to display full namespace pathnames. 2013-09-24 01:46:24 +02:00
acobject.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acopcode.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acparser.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acpredef.h ACPICA: Add argument typechecking for all predefined ACPI names 2013-06-01 21:54:30 +02:00
acresrc.h ACPICA: Resources: Fix loop termination for the get AML length function. 2013-11-21 13:47:04 +01:00
acstruct.h ACPICA: Add argument typechecking for all predefined ACPI names 2013-06-01 21:54:30 +02:00
actables.h ACPICA: Export acpi_tb_validate_rsdp(). 2013-08-08 15:36:08 +02:00
acutils.h ACPICA: Cleanup memory allocation macros and configurability. 2013-10-30 12:24:21 +01:00
amlcode.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
amlresrc.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
dsargs.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
dscontrol.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
dsfield.c ACPICA: Disassembler: Improve pathname support for emitted External() statements. 2014-01-08 15:31:36 +01:00
dsinit.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
dsmethod.c ACPICA: Add new statistics interface. 2013-10-31 14:37:33 +01:00
dsmthdat.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
dsobject.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
dsopcode.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
dsutils.c ACPICA: Update several debug statements - no functional change. 2014-01-08 15:31:37 +01:00
dswexec.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
dswload2.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
dswload.c ACPICA: Disassembler: Improve pathname support for emitted External() statements. 2014-01-08 15:31:36 +01:00
dswscope.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
dswstate.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
evevent.c ACPICA: Fix a typo in a function header, no functional change 2013-04-12 13:29:47 +02:00
evglock.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evgpe.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evgpeblk.c ACPICA: Improve exception handling for GPE block installation. 2014-01-08 15:31:37 +01:00
evgpeinit.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evgpeutil.c ACPICA: Improve exception handling for GPE block installation. 2014-01-08 15:31:37 +01:00
evhandler.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evmisc.c ACPICA: Add support for host-installed SCI handlers. 2013-09-24 01:46:24 +02:00
evregion.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evrgnini.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
evsci.c ACPICA: Add new statistics interface. 2013-10-31 14:37:33 +01:00
evxface.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evxfevnt.c ACPICA: Add EXPORT_ACPI_INTERFACES macro to external interface modules. 2013-10-31 14:34:00 +01:00
evxfgpe.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
evxfregn.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exconfig.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
exconvrt.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
excreate.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exdebug.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
exdump.c ACPICA: Fix compiler warnings for casting issues (only some compilers) 2013-07-23 01:06:50 +02:00
exfield.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exfldio.c ACPICA: Remove dead AOPOBJ_INVALID check. 2013-10-31 14:37:34 +01:00
exmisc.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exmutex.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
exnames.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
exoparg1.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exoparg2.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exoparg3.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exoparg6.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exprep.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
exregion.c ACPICA: Update default space handlers. 2013-10-31 14:37:31 +01:00
exresnte.c ACPICA: Interpreter: Add additional debug info for an error case. 2014-01-08 15:31:39 +01:00
exresolv.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exresop.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
exstore.c ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a field. 2013-09-06 15:39:59 +02:00
exstoren.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
exstorob.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
exsystem.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
exutils.c ACPICA: Regression fix: reinstate safe exit macros 2013-03-12 00:45:04 +01:00
hwacpi.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
hwesleep.c ACPI / sleep: Introduce acpi_os_prepare_extended_sleep() for extended sleep path 2013-07-31 14:20:39 +02:00
hwgpe.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
hwpci.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
hwregs.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
hwsleep.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
hwtimer.c ACPICA: Add EXPORT_ACPI_INTERFACES macro to external interface modules. 2013-10-31 14:34:00 +01:00
hwvalid.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
hwxface.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
hwxfsleep.c ACPICA: Cleanup asmlinkage for ACPICA APIs. 2013-10-31 14:37:35 +01:00
Makefile ACPICA: Split table print utilities to a new a separate file 2013-06-16 00:55:56 +02:00
nsaccess.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsalloc.c ACPICA: Add support to delete all objects attached to the root namespace node. 2013-11-21 13:47:04 +01:00
nsarguments.c ACPICA: Add argument typechecking for all predefined ACPI names 2013-06-01 21:54:30 +02:00
nsconvert.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
nsdump.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsdumpdv.c ACPICA: Update namespace dump code. 2013-10-31 14:37:31 +01:00
nseval.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsinit.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsload.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsnames.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
nsobject.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
nsparse.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nspredef.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsprepkg.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsrepair2.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsrepair.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nssearch.c ACPICA: Update check for setting the ANOBJ_IS_EXTERNAL flag. 2013-10-31 14:37:31 +01:00
nsutils.c ACPICA: Add support to delete all objects attached to the root namespace node. 2013-11-21 13:47:04 +01:00
nswalk.c ACPICA: Update names for walk_namespace callbacks to clarify usage. 2013-08-13 13:14:16 +02:00
nsxfeval.c ACPICA: Introduce acpi_get_data_full() and rework acpi_get_data() 2014-02-05 17:41:16 +01:00
nsxfname.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
nsxfobj.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
psargs.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
psloop.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
psobject.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
psopcode.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
psopinfo.c ACPICA: Conditionally define a local variable that is used for debug only. 2014-01-08 15:31:38 +01:00
psparse.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
psscope.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
pstree.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
psutils.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
pswalk.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
psxface.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
rsaddr.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rscalc.c ACPICA: Resources: Fix loop termination for the get AML length function. 2013-11-21 13:47:04 +01:00
rscreate.c ACPICA: Resources: Fix loop termination for the get AML length function. 2013-11-21 13:47:04 +01:00
rsdump.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
rsdumpinfo.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rsinfo.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rsio.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rsirq.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rslist.c ACPICA: Resource Mgr: Prevent infinite loops in resource walks 2013-03-12 00:45:03 +01:00
rsmemory.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rsmisc.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
rsserial.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
rsutils.c ACPICA: Resources: Fix loop termination for the get AML length function. 2013-11-21 13:47:04 +01:00
rsxface.c ACPICA: Add EXPORT_ACPI_INTERFACES macro to external interface modules. 2013-10-31 14:34:00 +01:00
tbfadt.c ACPICA: Add option to favor 32-bit FADT addresses. 2014-01-08 15:31:36 +01:00
tbfind.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
tbinstal.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
tbprint.c ACPICA: Table print header function: Increase default width for table length. 2013-10-30 12:24:20 +01:00
tbutils.c ACPICA: Cleanup the option of forcing the use of the RSDT. 2014-01-08 15:31:36 +01:00
tbxface.c ACPICA: Add __init for ACPICA initializers/finalizers. 2013-10-31 14:37:36 +01:00
tbxfload.c ACPICA: Add __init for ACPICA initializers/finalizers. 2013-10-31 14:37:36 +01:00
tbxfroot.c ACPICA: Add __init for ACPICA initializers/finalizers. 2013-10-31 14:37:36 +01:00
utaddress.c ACPICA: Enhance ACPI warning for memory/IO address conflicts. 2014-01-08 15:31:37 +01:00
utalloc.c ACPICA: Remove unused ACPI_FREE_BUFFER macro. No functional change. 2014-01-08 15:31:36 +01:00
utbuffer.c ACPICA: Split buffer dump routines into separate file 2013-06-16 00:52:22 +02:00
utcache.c ACPICA: Debug output: Fix a couple of small output issues. 2014-01-08 15:31:36 +01:00
utcopy.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
utdebug.c ACPICA: Debug output: Fix a couple of small output issues. 2014-01-08 15:31:36 +01:00
utdecode.c ACPICA: Add EXPORT_ACPI_INTERFACES macro to external interface modules. 2013-10-31 14:34:00 +01:00
utdelete.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
uterror.c ACPICA: Split internal error msg routines to a separate file 2013-06-16 00:54:08 +02:00
uteval.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
utexcep.c ACPICA: Add EXPORT_ACPI_INTERFACES macro to external interface modules. 2013-10-31 14:34:00 +01:00
utglobal.c ACPICA: Linuxize: Cleanup spaces after special macro invocations. 2014-01-08 15:31:39 +01:00
utids.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
utinit.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
utlock.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
utmath.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
utmisc.c ACPICA: Standardize all switch() blocks 2013-06-16 00:55:05 +02:00
utmutex.c ACPICA: Add a lock to the internal object reference count mechanism 2013-04-12 13:29:48 +02:00
utobject.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-11-15 16:47:22 -08:00
utosi.c ACPICA: Add acpi_update_interfaces() public interface 2013-07-23 04:06:03 +02:00
utownerid.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
utpredef.c ACPICA: Add argument typechecking for all predefined ACPI names 2013-06-01 21:54:30 +02:00
utresrc.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
utstate.c ACPICA: Cleanup useless memset invocations. 2013-10-31 14:37:34 +01:00
utstring.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
uttrack.c ACPICA: Linuxize: Change indentation of C labels. 2013-10-31 14:35:36 +01:00
utxface.c ACPICA: Add __init for ACPICA initializers/finalizers. 2013-10-31 14:37:36 +01:00
utxferror.c ACPICA: Add EXPORT_ACPI_INTERFACES macro to external interface modules. 2013-10-31 14:34:00 +01:00
utxfinit.c ACPICA: Add an error message if the Debugger fails initialization. 2014-01-08 15:31:38 +01:00
utxfmutex.c ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00