2018-03-14 16:13:07 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-05-27 20:08:02 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2018-03-14 16:13:07 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-03-17 16:44:00 -05:00
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-21 00:00:00 -04:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
2014-07-08 10:07:00 +08:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2010-09-15 13:55:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
2008-06-10 13:42:13 +08:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2017-08-03 14:26:50 +08:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2005-10-21 00:00:00 -04:00
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-21 00:00:00 -04:00
|
|
|
|
2012-07-12 09:40:10 +08:00
|
|
|
|
2005-10-21 00:00:00 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2014-02-11 10:51:43 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
2008-06-10 13:42:13 +08:00
|
|
|
|
2015-04-13 11:48:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2007-02-02 19:48:18 +03:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2015-04-13 11:48:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2007-02-02 19:48:23 +03:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:03:29 +08:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2006-01-27 16:43:00 -05:00
|
|
|
|
2008-12-31 03:03:29 +08:00
|
|
|
|
2006-01-27 16:43:00 -05:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
2006-06-23 17:04:00 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-06-10 13:42:13 +08:00
|
|
|
|
2006-06-23 17:04:00 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2006-03-17 16:44:00 -05:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:03:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-25 16:28:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-31 03:03:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-23 17:04:00 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-27 16:43:00 -05:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2006-01-27 16:43:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
2009-07-16 17:13:03 +02:00
|
|
|
|
2006-01-27 16:43:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2006-10-03 00:00:00 -04:00
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-29 09:30:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 00:00:00 -04:00
|
|
|
|
2013-10-29 09:30:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-03 00:00:00 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-31 09:31:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-29 09:29:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ACPICA: OSL: Add configurability for memory allocation macros.
OSPMs like Linux trend to include all header files but leave empty stub
macros for a feature that is not configured during build.
For macros defined without other symbols referencesd it is safe to leave
them without protections.
By investigation, there are only the following internal/external
symbols referenced by the ACPICA macros:
1. C library symbols, including string, ctype, stdarg APIs. Since such
symbols are always accessbile in the kernel source tree, it is safe to
leave macros referencing them without protected for Linux.
2. ACPICA OSL symbols, such symbols are designed to be used only by ACPICA
internal APIs. And there are macros directly referencing mutex and
memory allocation OSL symbols. We need to examine the external usages
of such macros.
For macros referencing the mutex OSL symbols, fortunately, there is no
external user directly invoking such macros.
========================================================================
!! IMPORTANT !!
========================================================================
For macros referencing memory allocation OSL symbols -
1. 'free' - ACPI_FREE
2. 'alloc' - ACPI_ALLOCATE, ACPI_ALLOCATE_ZEROED, ACPI_ALLOCATE_BUFFER,
ACPI_ALLOCATE_LOCAL_BUFFER
there are external users directly invoking 'alloc' macros. And the more
complicated situation is the reversals of such macros are not ACPI_FREE
but acpi_os_free (or kfree) in Linux. Though we can define such macros
into no-op, we in fact cannot define their reversals into no-op.
This patch adds mechanism to protect ACPICA memory allocation APIs for
Linux so that acpi_os_free (or kfree) invoked in Linux can have a zero
address returned by 'alloc' macros to free. In this
way, acpi_os_free (or kfree) can be converted into no-op.
========================================================================
3. ACPI_OFFSET and other macros that would access structure members, we
need to check if such structure members are not accessible under a
specific configuration. Fortunately, currently Linux doesn't use such
structure members when CONFIG_ACPI is disabled.
This patch thus only adds mechanism useful for implementing stubs for
ACPICA provided macros - the configurability of memory allocation APIs.
This patch doesn't include code for Linux to use this new mechanism, thus
no functional changes. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-04-30 10:04:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-29 09:29:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ACPICA: OSL: Add configurability for memory allocation macros.
OSPMs like Linux trend to include all header files but leave empty stub
macros for a feature that is not configured during build.
For macros defined without other symbols referencesd it is safe to leave
them without protections.
By investigation, there are only the following internal/external
symbols referenced by the ACPICA macros:
1. C library symbols, including string, ctype, stdarg APIs. Since such
symbols are always accessbile in the kernel source tree, it is safe to
leave macros referencing them without protected for Linux.
2. ACPICA OSL symbols, such symbols are designed to be used only by ACPICA
internal APIs. And there are macros directly referencing mutex and
memory allocation OSL symbols. We need to examine the external usages
of such macros.
For macros referencing the mutex OSL symbols, fortunately, there is no
external user directly invoking such macros.
========================================================================
!! IMPORTANT !!
========================================================================
For macros referencing memory allocation OSL symbols -
1. 'free' - ACPI_FREE
2. 'alloc' - ACPI_ALLOCATE, ACPI_ALLOCATE_ZEROED, ACPI_ALLOCATE_BUFFER,
ACPI_ALLOCATE_LOCAL_BUFFER
there are external users directly invoking 'alloc' macros. And the more
complicated situation is the reversals of such macros are not ACPI_FREE
but acpi_os_free (or kfree) in Linux. Though we can define such macros
into no-op, we in fact cannot define their reversals into no-op.
This patch adds mechanism to protect ACPICA memory allocation APIs for
Linux so that acpi_os_free (or kfree) invoked in Linux can have a zero
address returned by 'alloc' macros to free. In this
way, acpi_os_free (or kfree) can be converted into no-op.
========================================================================
3. ACPI_OFFSET and other macros that would access structure members, we
need to check if such structure members are not accessible under a
specific configuration. Fortunately, currently Linux doesn't use such
structure members when CONFIG_ACPI is disabled.
This patch thus only adds mechanism useful for implementing stubs for
ACPICA provided macros - the configurability of memory allocation APIs.
This patch doesn't include code for Linux to use this new mechanism, thus
no functional changes. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-04-30 10:04:42 +08:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-31 03:06:06 +08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:06:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2008-12-31 03:06:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-29 09:29:45 +08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-08 13:42:25 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-31 00:05:46 +00:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 14:16:21 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-12-31 00:05:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-17 15:40:18 -08:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
2019-08-16 14:43:21 -07:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-24 15:42:31 -08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-21 10:06:32 +08:00
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-21 10:06:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-22 12:41:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-21 10:31:24 +08:00
|
|
|
|
2018-01-24 15:42:32 -08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-16 14:43:22 -07:00
|
|
|
|
2022-01-11 16:55:25 +01:00
|
|
|
|
2018-01-24 15:42:30 -08:00
|
|
|
|
2022-01-11 16:55:25 +01:00
|
|
|
|
|
|
|
|
|
2018-01-24 15:42:30 -08:00
|
|
|
|
2022-01-11 16:55:25 +01:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
2012-10-31 02:27:40 +00:00
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2019-04-08 13:42:24 -07:00
|
|
|
|
2019-04-08 13:42:23 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2019-04-08 13:42:25 -07:00
|
|
|
|
2025-04-25 21:32:12 +02:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
2013-09-23 09:52:34 +08:00
|
|
|
|
|
|
|
|
|
2025-04-25 21:30:27 +02:00
|
|
|
|
2015-07-01 14:45:11 +08:00
|
|
|
|
2013-09-23 09:52:34 +08:00
|
|
|
|
2018-12-13 12:30:32 -08:00
|
|
|
|
|
|
|
|
|
2019-04-08 13:42:25 -07:00
|
|
|
|
2018-12-13 12:30:32 -08:00
|
|
|
|
2017-08-03 14:26:19 +08:00
|
|
|
|
2020-02-12 17:59:39 +03:00
|
|
|
|
2017-08-03 14:26:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-04-11 20:55:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-03 14:26:19 +08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2018-03-14 16:13:09 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2018-03-14 16:13:09 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-02 19:48:21 +03:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-04-23 09:03:49 +08:00
|
|
|
|
2026-05-27 19:51:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-04 22:56:43 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-10 19:06:44 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-14 18:23:39 +08:00
|
|
|
|
2014-07-30 12:21:31 +08:00
|
|
|
|
2017-06-05 16:37:23 +08:00
|
|
|
|
2019-02-19 11:33:40 -08:00
|
|
|
|
2008-04-10 19:06:44 +04:00
|
|
|
|
2019-02-19 11:33:40 -08:00
|
|
|
|
2016-03-24 09:39:36 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2008-11-12 14:16:21 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-25 10:29:52 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2015-08-25 10:29:52 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-19 05:36:49 +00:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-10 19:06:40 +04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-21 13:39:10 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-12 09:40:10 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-04 16:43:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-13 11:49:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-04 16:43:39 +08:00
|
|
|
|
2015-04-13 11:49:13 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-12-19 05:36:49 +00:00
|
|
|
|
2010-04-06 14:52:37 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2010-12-13 13:36:15 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-04 16:43:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-10 00:31:58 +02:00
|
|
|
|
2016-08-04 16:43:39 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2010-12-13 13:39:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-05 16:27:03 +08:00
|
|
|
|
|
|
|
|
|
2015-02-05 15:20:29 +08:00
|
|
|
|
2010-12-13 13:39:17 +08:00
|
|
|
|
2015-02-05 16:27:03 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2015-02-05 16:27:03 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2015-02-05 16:27:03 +08:00
|
|
|
|
2017-08-10 00:31:58 +02:00
|
|
|
|
2018-03-14 16:12:59 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-10 19:06:44 +04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-03 11:08:19 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-02-14 18:23:39 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-05-03 11:08:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-24 11:32:04 +08:00
|
|
|
|
2011-11-16 14:14:32 +08:00
|
|
|
|
|
|
|
|
|
2012-05-22 16:23:21 +08:00
|
|
|
|
2020-06-04 13:44:20 -07:00
|
|
|
|
2011-04-13 13:19:35 +08:00
|
|
|
|
2020-06-04 13:44:20 -07:00
|
|
|
|
2011-04-13 13:20:49 +08:00
|
|
|
|
2011-04-13 13:19:35 +08:00
|
|
|
|
2011-04-13 13:20:49 +08:00
|
|
|
|
2011-04-13 13:19:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-07 19:53:56 -07:00
|
|
|
|
2011-04-13 13:19:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-04-13 13:22:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-18 14:31:05 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
|
|
|
|
|
2009-02-18 14:31:05 +08:00
|
|
|
|
2008-09-27 11:26:59 +08:00
|
|
|
|
2009-02-18 14:31:05 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-03-06 09:49:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
|
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
2010-01-21 10:06:32 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2008-04-10 19:06:43 +04:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ACPICA: OSL: Add configurability for memory allocation macros.
OSPMs like Linux trend to include all header files but leave empty stub
macros for a feature that is not configured during build.
For macros defined without other symbols referencesd it is safe to leave
them without protections.
By investigation, there are only the following internal/external
symbols referenced by the ACPICA macros:
1. C library symbols, including string, ctype, stdarg APIs. Since such
symbols are always accessbile in the kernel source tree, it is safe to
leave macros referencing them without protected for Linux.
2. ACPICA OSL symbols, such symbols are designed to be used only by ACPICA
internal APIs. And there are macros directly referencing mutex and
memory allocation OSL symbols. We need to examine the external usages
of such macros.
For macros referencing the mutex OSL symbols, fortunately, there is no
external user directly invoking such macros.
========================================================================
!! IMPORTANT !!
========================================================================
For macros referencing memory allocation OSL symbols -
1. 'free' - ACPI_FREE
2. 'alloc' - ACPI_ALLOCATE, ACPI_ALLOCATE_ZEROED, ACPI_ALLOCATE_BUFFER,
ACPI_ALLOCATE_LOCAL_BUFFER
there are external users directly invoking 'alloc' macros. And the more
complicated situation is the reversals of such macros are not ACPI_FREE
but acpi_os_free (or kfree) in Linux. Though we can define such macros
into no-op, we in fact cannot define their reversals into no-op.
This patch adds mechanism to protect ACPICA memory allocation APIs for
Linux so that acpi_os_free (or kfree) invoked in Linux can have a zero
address returned by 'alloc' macros to free. In this
way, acpi_os_free (or kfree) can be converted into no-op.
========================================================================
3. ACPI_OFFSET and other macros that would access structure members, we
need to check if such structure members are not accessible under a
specific configuration. Fortunately, currently Linux doesn't use such
structure members when CONFIG_ACPI is disabled.
This patch thus only adds mechanism useful for implementing stubs for
ACPICA provided macros - the configurability of memory allocation APIs.
This patch doesn't include code for Linux to use this new mechanism, thus
no functional changes. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-04-30 10:04:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-08 13:43:23 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
ACPICA: OSL: Add configurability for memory allocation macros.
OSPMs like Linux trend to include all header files but leave empty stub
macros for a feature that is not configured during build.
For macros defined without other symbols referencesd it is safe to leave
them without protections.
By investigation, there are only the following internal/external
symbols referenced by the ACPICA macros:
1. C library symbols, including string, ctype, stdarg APIs. Since such
symbols are always accessbile in the kernel source tree, it is safe to
leave macros referencing them without protected for Linux.
2. ACPICA OSL symbols, such symbols are designed to be used only by ACPICA
internal APIs. And there are macros directly referencing mutex and
memory allocation OSL symbols. We need to examine the external usages
of such macros.
For macros referencing the mutex OSL symbols, fortunately, there is no
external user directly invoking such macros.
========================================================================
!! IMPORTANT !!
========================================================================
For macros referencing memory allocation OSL symbols -
1. 'free' - ACPI_FREE
2. 'alloc' - ACPI_ALLOCATE, ACPI_ALLOCATE_ZEROED, ACPI_ALLOCATE_BUFFER,
ACPI_ALLOCATE_LOCAL_BUFFER
there are external users directly invoking 'alloc' macros. And the more
complicated situation is the reversals of such macros are not ACPI_FREE
but acpi_os_free (or kfree) in Linux. Though we can define such macros
into no-op, we in fact cannot define their reversals into no-op.
This patch adds mechanism to protect ACPICA memory allocation APIs for
Linux so that acpi_os_free (or kfree) invoked in Linux can have a zero
address returned by 'alloc' macros to free. In this
way, acpi_os_free (or kfree) can be converted into no-op.
========================================================================
3. ACPI_OFFSET and other macros that would access structure members, we
need to check if such structure members are not accessible under a
specific configuration. Fortunately, currently Linux doesn't use such
structure members when CONFIG_ACPI is disabled.
This patch thus only adds mechanism useful for implementing stubs for
ACPICA provided macros - the configurability of memory allocation APIs.
This patch doesn't include code for Linux to use this new mechanism, thus
no functional changes. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-04-30 10:04:42 +08:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-23 12:52:39 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-24 09:40:40 +08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2013-10-31 09:30:28 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-31 02:25:45 +00:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-09-23 09:52:05 +08:00
|
|
|
|
2013-09-23 09:52:45 +08:00
|
|
|
|
2013-09-23 09:52:05 +08:00
|
|
|
|
2010-12-13 13:39:26 +08:00
|
|
|
|
2012-10-31 02:25:36 +00:00
|
|
|
|
2010-12-13 13:39:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-31 02:25:45 +00:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2010-12-13 13:38:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-06-29 13:43:27 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-05-05 12:57:53 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-05 12:57:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-11-12 14:16:21 +08:00
|
|
|
|
2008-04-10 19:06:38 +04:00
|
|
|
|
|
|
|
|
|
2016-05-05 12:57:53 +08:00
|
|
|
|
2008-04-10 19:06:38 +04:00
|
|
|
|
2016-09-07 14:06:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-07 14:06:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-20 01:07:26 +00:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-05 12:57:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2006-03-17 16:44:00 -05:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2011-11-16 13:39:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-22 17:32:54 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-27 19:54:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-22 17:32:54 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2016-05-05 12:57:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-05 12:57:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2010-08-06 09:35:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-12-13 13:39:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-01 14:44:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-29 13:55:47 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-10-31 02:25:24 +00:00
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2012-10-31 02:25:24 +00:00
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
2020-07-20 10:31:19 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
2017-06-05 16:41:12 +08:00
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-01 14:44:04 +08:00
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-21 10:06:32 +08:00
|
|
|
|
2012-10-31 02:25:24 +00:00
|
|
|
|
|
|
|
|
|
2015-07-01 14:44:04 +08:00
|
|
|
|
2012-10-31 02:25:24 +00:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2009-06-29 13:39:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-07-01 14:44:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2015-12-29 13:55:47 +08:00
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ACPI: ACPICA 20060421
Removed a device initialization optimization introduced in
20051216 where the _STA method was not run unless an _INI
was also present for the same device. This optimization
could cause problems because it could allow _INI methods
to be run within a not-present device subtree (If a
not-present device had no _INI, _STA would not be run,
the not-present status would not be discovered, and the
children of the device would be incorrectly traversed.)
Implemented a new _STA optimization where namespace
subtrees that do not contain _INI are identified and
ignored during device initialization. Selectively running
_STA can significantly improve boot time on large machines
(with assistance from Len Brown.)
Implemented support for the device initialization case
where the returned _STA flags indicate a device not-present
but functioning. In this case, _INI is not run, but the
device children are examined for presence, as per the
ACPI specification.
Implemented an additional change to the IndexField support
in order to conform to MS behavior. The value written to
the Index Register is not simply a byte offset, it is a
byte offset in units of the access width of the parent
Index Field. (Fiodor Suietov)
Defined and deployed a new OSL interface,
acpi_os_validate_address(). This interface is called during
the creation of all AML operation regions, and allows
the host OS to exert control over what addresses it will
allow the AML code to access. Operation Regions whose
addresses are disallowed will cause a runtime exception
when they are actually accessed (will not affect or abort
table loading.)
Defined and deployed a new OSL interface,
acpi_os_validate_interface(). This interface allows the host OS
to match the various "optional" interface/behavior strings
for the _OSI predefined control method as appropriate
(with assistance from Bjorn Helgaas.)
Restructured and corrected various problems in the
exception handling code paths within DsCallControlMethod
and DsTerminateControlMethod in dsmethod (with assistance
from Takayoshi Kochi.)
Modified the Linux source converter to ignore quoted string
literals while converting identifiers from mixed to lower
case. This will correct problems with the disassembler
and other areas where such strings must not be modified.
The ACPI_FUNCTION_* macros no longer require quotes around
the function name. This allows the Linux source converter
to convert the names, now that the converter ignores
quoted strings.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2006-04-21 17:15:00 -04:00
|
|
|
|
|
|
|
|
|
2005-12-16 17:05:00 -05:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
ACPICA: Preserve memory opregion mappings
The ACPICA's strategy with respect to the handling of memory mappings
associated with memory operation regions is to avoid mapping the
entire region at once which may be problematic at least in principle
(for example, it may lead to conflicts with overlapping mappings
having different attributes created by drivers). It may also be
wasteful, because memory opregions on some systems take up vast
chunks of address space while the fields in those regions actually
accessed by AML are sparsely distributed.
For this reason, a one-page "window" is mapped for a given opregion
on the first memory access through it and if that "window" does not
cover an address range accessed through that opregion subsequently,
it is unmapped and a new "window" is mapped to replace it. Next,
if the new "window" is not sufficient to acess memory through the
opregion in question in the future, it will be replaced with yet
another "window" and so on. That may lead to a suboptimal sequence
of memory mapping and unmapping operations, for example if two fields
in one opregion separated from each other by a sufficiently wide
chunk of unused address space are accessed in an alternating pattern.
The situation may still be suboptimal if the deferred unmapping
introduced previously is supported by the OS layer. For instance,
the alternating memory access pattern mentioned above may produce
a relatively long list of mappings to release with substantial
duplication among the entries in it, which could be avoided if
acpi_ex_system_memory_space_handler() did not release the mapping
used by it previously as soon as the current access was not covered
by it.
In order to improve that, modify acpi_ex_system_memory_space_handler()
to preserve all of the memory mappings created by it until the memory
regions associated with them go away.
Accordingly, update acpi_ev_system_memory_region_setup() to unmap all
memory associated with memory opregions that go away.
Reported-by: Dan Williams <dan.j.williams@intel.com>
Tested-by: Xiang Li <xiang.z.li@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-06-30 13:40:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ACPICA: Preserve memory opregion mappings
The ACPICA's strategy with respect to the handling of memory mappings
associated with memory operation regions is to avoid mapping the
entire region at once which may be problematic at least in principle
(for example, it may lead to conflicts with overlapping mappings
having different attributes created by drivers). It may also be
wasteful, because memory opregions on some systems take up vast
chunks of address space while the fields in those regions actually
accessed by AML are sparsely distributed.
For this reason, a one-page "window" is mapped for a given opregion
on the first memory access through it and if that "window" does not
cover an address range accessed through that opregion subsequently,
it is unmapped and a new "window" is mapped to replace it. Next,
if the new "window" is not sufficient to acess memory through the
opregion in question in the future, it will be replaced with yet
another "window" and so on. That may lead to a suboptimal sequence
of memory mapping and unmapping operations, for example if two fields
in one opregion separated from each other by a sufficiently wide
chunk of unused address space are accessed in an alternating pattern.
The situation may still be suboptimal if the deferred unmapping
introduced previously is supported by the OS layer. For instance,
the alternating memory access pattern mentioned above may produce
a relatively long list of mappings to release with substantial
duplication among the entries in it, which could be avoided if
acpi_ex_system_memory_space_handler() did not release the mapping
used by it previously as soon as the current access was not covered
by it.
In order to improve that, modify acpi_ex_system_memory_space_handler()
to preserve all of the memory mappings created by it until the memory
regions associated with them go away.
Accordingly, update acpi_ev_system_memory_region_setup() to unmap all
memory associated with memory opregions that go away.
Reported-by: Dan Williams <dan.j.williams@intel.com>
Tested-by: Xiang Li <xiang.z.li@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-06-30 13:40:59 +02:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-04-05 15:35:31 +02:00
|
|
|
|
2021-12-22 17:21:25 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2016-03-24 09:40:40 +08:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-12-31 03:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-21 00:00:00 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2015-07-23 12:53:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 15:29:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-02 21:59:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-16 14:43:26 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-16 14:43:27 -07:00
|
|
|
|
2021-10-01 20:14:47 +02:00
|
|
|
|
2022-04-11 20:47:00 +02:00
|
|
|
|
2024-04-24 10:02:31 +02:00
|
|
|
|
2013-07-02 21:59:10 +08:00
|
|
|
|
2014-07-08 10:07:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-01-21 16:23:51 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ACPICA: Introduce ACPI_FLEX_ARRAY
ACPICA commit e73b227e8e475c20cc394f237ea35d592fdf9ec3
In order to enable using -fstrict-flex-arrays with GCC and Clang in the
Linux kernel, each trailing dynamically sized array must be defined as
proper C99 "flexible array members" (FAM). Unfortunately, ACPICA has a
bunch of technical debt, dating back to before even the GNU extension of
0-length arrays, meaning the code base has many 1-element and 0-length
arrays defined at the end of structures that should actually be FAMs.
One limitation of the C99 FAM specification is the accidental requirement
that they cannot be in unions or alone in structs. There is no real-world
reason for this, though, and, actually, the existing GNU extension
permits this for 0-length arrays (which get treated as FAMs).
Add the ACPI_FLEX_ARRAY() helper macro to work around this requirement
so that FAMs can be defined in unions or alone in structs. Since this
behavior still depends on GNU extensions, keep the macro specific to GCC
(and Clang) builds. In this way, MSVC will continue to use 0-length
arrays (since it does not support the union work-around). When MSVC
grows support for this in the future, the macro can be updated.
Link: https://github.com/acpica/acpica/commit/e73b227e
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2023-04-05 15:52:23 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-25 21:27:58 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-05 00:44:28 -04:00
|
|
|
|