Compare commits
70 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2034bc6bc0 | ||
|
|
1517179023 | ||
|
|
dd197c56b0 | ||
|
|
c31d4bd944 | ||
|
|
060346c679 | ||
|
|
b0faa22b60 | ||
|
|
bada08a9e1 | ||
|
|
4617be5167 | ||
|
|
0b430889a9 | ||
|
|
332bf9f7ba | ||
|
|
9e790bf25d | ||
|
|
237083a28a | ||
|
|
7aef804454 | ||
|
|
82469f7721 | ||
|
|
a89b86980e | ||
|
|
1ac5d77229 | ||
|
|
fc3eef63e8 | ||
|
|
cf71d6aebb | ||
|
|
b8d03463ff | ||
|
|
97df1c2ef7 | ||
|
|
b0419b13c7 | ||
|
|
da0952d381 | ||
|
|
5a8256ff73 | ||
|
|
6c32bdbf15 | ||
|
|
22a7401210 | ||
|
|
3ccfccfec1 | ||
|
|
7f8779a500 | ||
|
|
d9b84e63e0 | ||
|
|
b457eb3d12 | ||
|
|
59852bc27d | ||
|
|
ee9acad4cb | ||
|
|
77d39bce5f | ||
|
|
4f99fff578 | ||
|
|
416465f9d4 | ||
|
|
1f5bfe9b39 | ||
|
|
691cca69d9 | ||
|
|
3bed39446c | ||
|
|
e51802b365 | ||
|
|
245633aae5 | ||
|
|
0eba164ee5 | ||
|
|
630afe986a | ||
|
|
21acab9abc | ||
|
|
defe2b6433 | ||
|
|
7ae04aaa72 | ||
|
|
41d9121d77 | ||
|
|
c6ecf612fe | ||
|
|
38a008cb32 | ||
|
|
6c29d68058 | ||
|
|
249abc074a | ||
|
|
17d826f180 | ||
|
|
edb6c78416 | ||
|
|
f9e9c6154d | ||
|
|
97b38e48de | ||
|
|
6337b475f0 | ||
|
|
02a30e0c2e | ||
|
|
335268930f | ||
|
|
19a9c691f5 | ||
|
|
4188296ae3 | ||
|
|
ed7c04b852 | ||
|
|
75b40f8005 | ||
|
|
8992cb4a75 | ||
|
|
22392df24e | ||
|
|
ce99b3ebdd | ||
|
|
b549117a4b | ||
|
|
5b73a30c60 | ||
|
|
2652e3e2c4 | ||
|
|
a4c3787ec9 | ||
|
|
f3595ddf16 | ||
|
|
a359383058 | ||
|
|
b2261cf6d3 |
39 changed files with 478 additions and 7939 deletions
39
.gitignore
vendored
39
.gitignore
vendored
|
|
@ -127,3 +127,42 @@ series
|
|||
/acpitests-unix-20200110.tar.gz
|
||||
/acpica-unix2-20200214.tar.gz
|
||||
/acpitests-unix-20200214.tar.gz
|
||||
/acpica-unix2-20200326.tar.gz
|
||||
/acpitests-unix-20200326.tar.gz
|
||||
/acpica-unix2-20200430.tar.gz
|
||||
/acpitests-unix-20200430.tar.gz
|
||||
/acpica-unix2-20200528.tar.gz
|
||||
/acpitests-unix-20200528.tar.gz
|
||||
/acpica-unix2-20200717.tar.gz
|
||||
/acpitests-unix-20200717.tar.gz
|
||||
/acpica-unix2-20200925.tar.gz
|
||||
/acpitests-unix-20200925.tar.gz
|
||||
/acpica-unix2-20201113.tar.gz
|
||||
/acpitests-unix-20201113.tar.gz
|
||||
/acpica-unix2-20201217.tar.gz
|
||||
/acpitests-unix-20201217.tar.gz
|
||||
/acpica-unix2-20210105.tar.gz
|
||||
/acpitests-unix-20210105.tar.gz
|
||||
/acpica-unix2-20210331.tar.gz
|
||||
/acpitests-unix-20210331.tar.gz
|
||||
/acpica-unix2-20210604.tar_0.gz
|
||||
/acpitests-unix-20210604.tar.gz
|
||||
/acpica-unix2-20210604.tar.gz
|
||||
/acpica-unix2-20210730.tar.gz
|
||||
/acpitests-unix-20210730.tar.gz
|
||||
/acpica-unix2-20210930.tar.gz
|
||||
/acpitests-unix-20210930.tar.gz
|
||||
/acpica-unix2-20211217.tar.gz
|
||||
/acpitests-unix-20211217.tar.gz
|
||||
/acpica-unix2-20220331.tar.gz
|
||||
/acpitests-unix-20220331.tar.gz
|
||||
/acpica-unix2-20230331.tar.gz
|
||||
/acpitests-unix-20230331.tar.gz
|
||||
/acpica-unix2-20240321.tar.gz
|
||||
/acpitests-unix-20240321.tar.gz
|
||||
/acpica-unix2-20240322.tar.gz
|
||||
/acpitests-unix-20240322.tar.gz
|
||||
/acpica-unix2-20250807.tar.gz
|
||||
/acpitests-unix-20250807.tar.gz
|
||||
/acpica-unix2-20251212.tar.gz
|
||||
/acpitests-unix-20251212.tar.gz
|
||||
|
|
|
|||
30
0002-Correct-dumping-of-SLIC-tables.patch
Normal file
30
0002-Correct-dumping-of-SLIC-tables.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
From 957662e99f6ec38849a9cf47eaebe1c232f74bbd Mon Sep 17 00:00:00 2001
|
||||
From: Al Stone <ahs3@ahs3.net>
|
||||
Date: Wed, 14 Apr 2021 21:18:12 -0600
|
||||
Subject: [PATCH 2/2] Correct dumping of SLIC tables
|
||||
|
||||
When dumping the SLIC table, the code was not starting at the proper
|
||||
offset. Set the offset to the first byte after the header.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@ahs3.net>
|
||||
---
|
||||
source/common/dmtbdump3.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c
|
||||
index 6e5f5d7ff..9a5b5ecd5 100644
|
||||
--- a/source/common/dmtbdump3.c
|
||||
+++ b/source/common/dmtbdump3.c
|
||||
@@ -177,7 +177,8 @@ AcpiDmDumpSlic (
|
||||
ACPI_TABLE_HEADER *Table)
|
||||
{
|
||||
|
||||
- (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table,
|
||||
+ (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER),
|
||||
+ (void *) (Table + sizeof (*Table)),
|
||||
Table->Length - sizeof (*Table), AcpiDmTableInfoSlic);
|
||||
}
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
||||
37
0003-PHAT-FW-health-table-can-be-zero-length.patch
Normal file
37
0003-PHAT-FW-health-table-can-be-zero-length.patch
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
From 1fb473e41bcbfbe21c02bcb30983b87aa94a6cb8 Mon Sep 17 00:00:00 2001
|
||||
From: Al Stone <ahs3@ahs3.net>
|
||||
Date: Tue, 13 Aug 2024 09:50:37 -0600
|
||||
Subject: [PATCH] PHAT FW health table can be zero-length
|
||||
|
||||
When calculating the VendorLength of the PHAT FW health data subtable,
|
||||
the result becomes a negative integer. However, since UINT32 is being
|
||||
used, it looks like a huge positive integer instead. Conditionalize
|
||||
the length calculation to handle this case properly.
|
||||
|
||||
This was discovered by using the command: iasl -T phat
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@ahs3.net>
|
||||
---
|
||||
source/common/dmtbdump2.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c
|
||||
index 32b76b382..dd4d4878e 100644
|
||||
--- a/source/common/dmtbdump2.c
|
||||
+++ b/source/common/dmtbdump2.c
|
||||
@@ -2432,8 +2432,10 @@ AcpiDmDumpPhat (
|
||||
|
||||
/* Get Device-Specific Data - length of which is the remaining subtable length. */
|
||||
|
||||
- VendorLength =
|
||||
- Subtable->Length - sizeof (ACPI_PHAT_HEALTH_DATA) - PathLength;
|
||||
+ VendorLength = 0;
|
||||
+ if (Subtable->Length > sizeof (ACPI_PHAT_HEALTH_DATA) + PathLength)
|
||||
+ VendorLength =
|
||||
+ Subtable->Length - sizeof (ACPI_PHAT_HEALTH_DATA) - PathLength;
|
||||
DbgPrint (ASL_DEBUG_OUTPUT, "%u, Subtable->Length %X, VendorLength %X, Offset %X PathLength: %X\n",
|
||||
__LINE__, Subtable->Length, VendorLength, Offset, PathLength);
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
Index: acpica-unix-20191018/generate/unix/Makefile.config
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/generate/unix/Makefile.config
|
||||
+++ acpica-unix-20191018/generate/unix/Makefile.config
|
||||
@@ -23,6 +23,9 @@
|
||||
# OPT_CFLAGS can be overridden on the make command line by
|
||||
# adding OPT_CFLAGS="..." to the invocation.
|
||||
#
|
||||
+# OPT_LDFLAGS can be overridden on the make command line by
|
||||
+# adding OPT_LDFLAGS="..." to the invocation.
|
||||
+#
|
||||
# Notes:
|
||||
# gcc should be version 4 or greater, otherwise some of the options
|
||||
# used will not be recognized.
|
||||
@@ -165,6 +168,11 @@ LDFLAGS +=-m32
|
||||
endif
|
||||
|
||||
#
|
||||
+# Common linker flags
|
||||
+#
|
||||
+OPT_LDFLAGS ?=
|
||||
+
|
||||
+#
|
||||
# Optionally disable optimizations. Optimization causes problems on
|
||||
# some compilers such as gcc 4.4
|
||||
#
|
||||
|
|
@ -1,20 +1,22 @@
|
|||
Name: acpica-tools
|
||||
Version: 20200214
|
||||
Release: 1%{?dist}
|
||||
Version: 20251212
|
||||
Release: 2%{?dist}
|
||||
Summary: ACPICA tools for the development and debug of ACPI tables
|
||||
|
||||
License: GPLv2
|
||||
URL: https://www.acpica.org/
|
||||
# Automatically converted from old format: GPLv2 - review is highly recommended.
|
||||
License: GPL-2.0-only
|
||||
URL: https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/overview.html
|
||||
|
||||
Source0: https://acpica.org/sites/acpica/files/acpica-unix2-%{version}.tar.gz
|
||||
Source1: https://acpica.org/sites/acpica/files/acpitests-unix-%{version}.tar.gz
|
||||
ExcludeArch: i686 armv7hl s390x
|
||||
|
||||
Source0: https://github.com/acpica/acpica/releases/download/%{version}/acpica-unix2-%{version}.tar.gz
|
||||
Source1: https://github.com/acpica/acpica/releases/download/%{version}/acpitests-unix-%{version}.tar.gz
|
||||
Source2: README.Fedora
|
||||
Source3: iasl.1
|
||||
Source4: acpibin.1
|
||||
Source5: acpidump.1
|
||||
Source6: acpiexec.1
|
||||
Source7: acpihelp.1
|
||||
Source8: acpinames.1
|
||||
Source9: acpisrc.1
|
||||
Source10: acpixtract.1
|
||||
Source11: acpiexamples.1
|
||||
|
|
@ -24,33 +26,18 @@ Source14: converterSample.asl.result
|
|||
Source15: run-misc-tests.sh
|
||||
Source16: COPYING
|
||||
|
||||
Patch0: big-endian.patch
|
||||
Patch1: big-endian-dmtbdump.patch
|
||||
Patch2: big-endian-dmtbdump1.patch
|
||||
Patch3: big-endian-dmtbdump2.patch
|
||||
Patch4: big-endian-dmtbdump3.patch
|
||||
Patch5: unaligned.patch
|
||||
Patch6: OPT_LDFLAGS.patch
|
||||
Patch7: int-format.patch
|
||||
Patch8: f23-harden.patch
|
||||
Patch9: template.patch
|
||||
Patch10: ppc64le.patch
|
||||
Patch11: arm7hl.patch
|
||||
Patch12: big-endian-v2.patch
|
||||
Patch13: simple-64bit.patch
|
||||
Patch14: mips-be-fix.patch
|
||||
Patch15: cve-2017-13693.patch
|
||||
Patch16: cve-2017-13694.patch
|
||||
Patch17: cve-2017-13695.patch
|
||||
Patch18: str-trunc-warn.patch
|
||||
Patch19: ptr-cast.patch
|
||||
Patch20: aslcodegen.patch
|
||||
Patch21: facp.patch
|
||||
Patch22: dup-symbol.patch
|
||||
Patch23: no-common.patch
|
||||
Patch24: utstring.patch
|
||||
Patch25: dbtest.patch
|
||||
# other miscellaneous patches
|
||||
Patch00: unaligned.patch
|
||||
Patch01: template.patch
|
||||
Patch04: cve-2017-13695.patch
|
||||
Patch05: str-trunc-warn.patch
|
||||
Patch06: dbtest.patch
|
||||
Patch07: dangling-ptr.patch
|
||||
Patch08: uuid-len.patch
|
||||
#Patch11: 0002-Correct-dumping-of-SLIC-tables.patch
|
||||
#Patch12: 0003-PHAT-FW-health-table-can-be-zero-length.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: bison patchutils flex gcc
|
||||
|
||||
# The previous iasl package contained only a very small subset of these tools
|
||||
|
|
@ -87,7 +74,6 @@ are installed:
|
|||
-- acpidump: write out the current contents of ACPI tables
|
||||
-- acpiexec: simulate AML execution in order to debug method definitions
|
||||
-- acpihelp: display help messages describing ASL keywords and op-codes
|
||||
-- acpinames: display complete ACPI name space from input AML
|
||||
-- acpisrc: manipulate the ACPICA source tree and format source files
|
||||
for specific environments
|
||||
-- acpixtract: extract binary ACPI tables from acpidump output (see
|
||||
|
|
@ -99,34 +85,7 @@ This version of the tools is being released under GPLv2 license.
|
|||
%setup -q -n acpica-unix2-%{version}
|
||||
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
|
||||
|
||||
%patch0 -p1 -b .big-endian
|
||||
%patch1 -p1 -b .big-endian-dmtbdump
|
||||
%patch2 -p1 -b .big-endian-dmtbdump1
|
||||
%patch3 -p1 -b .big-endian-dmtbdump2
|
||||
%patch4 -p1 -b .big-endian-dmtbdump3
|
||||
%patch5 -p1 -b .unaligned
|
||||
%patch6 -p1 -b .OPT_LDFLAGS
|
||||
%patch7 -p1 -b .int-format
|
||||
%patch8 -p1 -b .f23-harden
|
||||
# do not preserve a backup for this patch; it alters the results
|
||||
# of the template test case and forces it to fail
|
||||
%patch9 -p1
|
||||
%patch10 -p1 -b .ppc64le
|
||||
%patch11 -p1 -b .arm7hl
|
||||
%patch12 -p1 -b .big-endian-v2
|
||||
%patch13 -p1 -b .simple-64bit
|
||||
%patch14 -p1 -b .mips-be-fix
|
||||
%patch15 -p1 -b .cve-2017-13693
|
||||
%patch16 -p1 -b .cve-2017-13694
|
||||
%patch17 -p1 -b .cve-2017-13695
|
||||
%patch18 -p1 -b .str-trunc-warn
|
||||
%patch19 -p1 -b .ptr-cast
|
||||
%patch20 -p1 -b .aslcodegen
|
||||
%patch21 -p1 -b .facp
|
||||
%patch22 -p1 -b .dup-symbol
|
||||
%patch23 -p1 -b .no-common
|
||||
%patch24 -p1 -b .utstring
|
||||
%patch25 -p1 -b .dbtest
|
||||
%autopatch -p1
|
||||
|
||||
cp -p %{SOURCE2} README.Fedora
|
||||
cp -p %{SOURCE3} iasl.1
|
||||
|
|
@ -134,7 +93,6 @@ cp -p %{SOURCE4} acpibin.1
|
|||
cp -p %{SOURCE5} acpidump.1
|
||||
cp -p %{SOURCE6} acpiexec.1
|
||||
cp -p %{SOURCE7} acpihelp.1
|
||||
cp -p %{SOURCE8} acpinames.1
|
||||
cp -p %{SOURCE9} acpisrc.1
|
||||
cp -p %{SOURCE10} acpixtract.1
|
||||
cp -p %{SOURCE11} acpiexamples.1
|
||||
|
|
@ -187,7 +145,7 @@ OPT_LDFLAGS="%{__global_ldflags}"
|
|||
export OPT_CFLAGS
|
||||
export OPT_LDFLAGS
|
||||
|
||||
make
|
||||
%{make_build}
|
||||
|
||||
|
||||
%install
|
||||
|
|
@ -211,7 +169,7 @@ cd tests
|
|||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
# misc tests
|
||||
./run-misc-tests.sh %{buildroot}%{_bindir} %{version}
|
||||
#./run-misc-tests.sh %{buildroot}%{_bindir} %{version}
|
||||
|
||||
%pre
|
||||
if [ -e %{_bindir}/acpixtract-acpica ]
|
||||
|
|
@ -243,11 +201,140 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Tue Feb 25 2020 Al Stone <ahs3@redhat.com> - 20200214-1
|
||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 20251212-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Mon Dec 15 2025 Gwyn Ciesla <gwync@protonmail.com> - 20251212-1
|
||||
- 20251212
|
||||
|
||||
* Fri Aug 15 2025 Gwyn Ciesla <gwync@protonmail.com> - 20250807-1
|
||||
- 20250807
|
||||
|
||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20240322-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20240322-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Mon Aug 12 2024 Al Stone <ahs3@fedoraproject.org> - 20240322-1
|
||||
- Update source tree to 20240322 version from upstream. NB: this update
|
||||
is done in conjunction with removing s390x support due to the large
|
||||
number of patches that are now rendered obsolete. Closes BZ#2138250.
|
||||
- Note, too, that the upstream version of the tarball is missing two
|
||||
commits and has the wrong name; discussed this with upstream and
|
||||
included a patch with the two commits to correct this, and renamed
|
||||
the tarballs to try to maintain consistency. So, upstream is actually
|
||||
named version 20240321, but it should be 20240322 according to their
|
||||
own git tree (see tag G20240322 on github).
|
||||
- Removed executable bit from all the upstream source files
|
||||
- Remove big-endian support, aka s390x. Closes BZ#2298855.
|
||||
- Remove several 32-bit only patches that are also obsolete since they
|
||||
are for unsupported architectures (thanks to pbonzini and PR#5).
|
||||
- Remove PIE patches since that is currently the default (again, thanks
|
||||
to pbonzini and PR#5)
|
||||
|
||||
* Mon Jul 29 2024 Miroslav Suchý <msuchy@redhat.com> - 20220331-10
|
||||
- convert license to SPDX
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20220331-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20220331-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20220331-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20220331-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20220331-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20220331-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Sun Apr 3 2022 Al Stone <ahs3@redhat.com> - 20220331-3
|
||||
- Correct typo in ExcludeArch syntax
|
||||
|
||||
* Sun Apr 3 2022 Al Stone <ahs3@redhat.com> - 20220331-2
|
||||
- Stop building 32-bit architecture (i686 and armv7hl); they have been
|
||||
deprecated in Fedora
|
||||
|
||||
* Sun Apr 3 2022 Al Stone <ahs3@redhat.com> - 20220331-1
|
||||
- Update to 20220331 upstream source. Bring all the patches up to date.
|
||||
- Update the results of misc test cases.
|
||||
- Add in big-endian patches for PRMT, RGRT and SVKL tables (thanks, Dean!)
|
||||
|
||||
* Mon Mar 28 2022 Al Stone <ahs3@redhat.com> - 20211217-2
|
||||
- Stop building i686; it is the only Arch that stumbles across a problem
|
||||
in using varargs but since the Arch has been essentially deprecated,
|
||||
take this as an opportunity to finally drop support for it.
|
||||
|
||||
* Fri Mar 18 2022 Al Stone <ahs3@redhat.com> - 20211217-1
|
||||
- Update to 20211217 upstream source. Bring all the patches up to date.
|
||||
- Rawhide use of GCC 12 introduces a new check for dangling pointers which
|
||||
causes non-portable code in utdebug.c stack functions to not compile; add
|
||||
a patch to disable -Wdangling-pointer=2 for the specific functions
|
||||
- The AeRegionHandler() code in acpiexec call a UUID function with a buffer
|
||||
too small for the UUID output string; add a patch to correct this.
|
||||
|
||||
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20210604-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Mon Oct 4 2021 Al Stone <ahs3@redhat.com> - 20210730-1
|
||||
- Update to 20210730 upstream source. Bring all the patches up to date.
|
||||
|
||||
* Tue Jul 27 2021 Al Stone <ahs3@redhat.com> - 20210604-3
|
||||
- Running 'iasl -T all' would segfault when dumping the PHAT template;
|
||||
fixed AcpiDmDumpPhat() by removing unnecessary assignments from patch
|
||||
- Borrowed a patch from upstream to fix Unicode usage in WPBTs
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20210604-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Sun Jul 11 2021 Al Stone <ahs3@redhat.com> - 20210604-1
|
||||
- Update to 20210604 source tree (please note that tarballs for versions
|
||||
between 20200925 and 20210604 have been uploaded for archival reasons
|
||||
but no packaged version of these has been commited to the Fedora project)
|
||||
- Bring the big-endian patches up-to-date with what has been submitted
|
||||
upstream (not accepted currently).
|
||||
|
||||
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20200925-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Oct 19 2020 Al Stone <ahs3@redhat.com> - 20200925-1
|
||||
- Update to 20200925 source tree
|
||||
- Completely revamp the old big-endian patches (maintainability was the goal).
|
||||
This results in a much larger patch set, but each patch is more clearly used
|
||||
for a specific purpose.
|
||||
- The acpinames command has been deprecated upstream; acpiexec provides
|
||||
replacement functionality.
|
||||
|
||||
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200430-3
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200430-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jun 8 2020 Al Stone <ahs3@redhat.com> - 202004306-1
|
||||
- Update to 202004306 source tree, including patch refreshes
|
||||
|
||||
* Wed Apr 1 2020 Al Stone <ahs3@redhat.com> - 20200326-1
|
||||
- Update to 20200326 source tree, including patch refreshes
|
||||
- Removed a couple of patches that got included upstream
|
||||
|
||||
* Wed Feb 26 2020 Al Stone <ahs3@redhat.com> - 20200214-1
|
||||
- Update to 20200214 source tree, including patch refreshes
|
||||
- Add patches to fix an ARMv7 specific issue (utstring) and
|
||||
an s390x specific issue (dbtest), both involving more careful
|
||||
checks of array sizes
|
||||
- Add patch to fix up issues where strings and 4-byte quantities
|
||||
get interchanged; C strings want to be null terminated now, but
|
||||
AML does not so using strncpy is painful.
|
||||
- Add patch for s390x specific issue (dbtest), where initializing a
|
||||
string on the stack behaves a little differently
|
||||
- "PCC" is a defined Register() type, but "PlatformCommChannel" was
|
||||
being used instead; put it back to "PCC" as it should be in pcc.patch
|
||||
- Add another big-endian patch to compensate for changes to nsutils.c
|
||||
|
||||
* Mon Feb 24 2020 Al Stone <ahs3@redhat.com> - 20200110-1
|
||||
- Update to 20200110 source tree, including patch refreshes
|
||||
|
|
|
|||
49
acpinames.1
49
acpinames.1
|
|
@ -1,49 +0,0 @@
|
|||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPINAMES 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpinames \- ACPI name space dump utility
|
||||
.SH SYNOPSIS
|
||||
.B acpinames
|
||||
.RI <option> ...
|
||||
.RI <aml-file>
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpinames
|
||||
command. The option list is taken from the acpinames interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpinames
|
||||
prints out the complete ACPI name space for an AML file.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-? [<name-prefix>]
|
||||
Display this help message
|
||||
|
||||
.SH AUTHOR
|
||||
acpinames was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
21
arm7hl.patch
21
arm7hl.patch
|
|
@ -1,21 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/include/acmacros.h
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/include/acmacros.h
|
||||
+++ acpica-unix-20191018/source/include/acmacros.h
|
||||
@@ -178,6 +178,8 @@
|
||||
|
||||
/* 16-bit source, 16/32/64 destination */
|
||||
|
||||
+#define ACPI_MOVE_16_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];}
|
||||
+
|
||||
#define ACPI_MOVE_16_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];}
|
||||
|
||||
@@ -199,6 +201,7 @@
|
||||
|
||||
/* 64-bit source, 16/32/64 destination */
|
||||
|
||||
+#define ACPI_MOVE_64_TO_8(d, s) ACPI_MOVE_16_TO_8(d, s) /* Truncate to 8 */
|
||||
#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
|
||||
#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */
|
||||
#define ACPI_MOVE_64_TO_64(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
Changes in the handling of comments caused some length fields to be used
|
||||
in new ways. The new way broke the existing adaptation for big endian
|
||||
support; this patch repairs that adaptation.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@redhat.com>
|
||||
|
||||
Index: acpica-unix-20191018/source/compiler/aslcodegen.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/aslcodegen.c
|
||||
+++ acpica-unix-20191018/source/compiler/aslcodegen.c
|
||||
@@ -497,8 +497,7 @@ CgWriteTableHeader (
|
||||
|
||||
/* Table length. Checksum zero for now, will rewrite later */
|
||||
|
||||
- DWord = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
|
||||
- ACPI_MOVE_32_TO_32(&AslGbl_TableHeader.Length, &DWord);
|
||||
+ AslGbl_TableHeader.Length = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
|
||||
|
||||
/* Calculate the comment lengths for this definition block parseOp */
|
||||
|
||||
@@ -544,6 +543,8 @@ CgWriteTableHeader (
|
||||
CvDbgPrint (" Length: %u\n", CommentLength);
|
||||
}
|
||||
}
|
||||
+ DWord = AslGbl_TableHeader.Length;
|
||||
+ ACPI_MOVE_32_TO_32(&AslGbl_TableHeader.Length, &DWord);
|
||||
|
||||
AslGbl_TableHeader.Checksum = 0;
|
||||
Op->Asl.FinalAmlOffset = ftell (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
|
||||
|
|
@ -1,3 +1,12 @@
|
|||
badcode.asl 37: Name (PATH, Buffer() {"\_SB_.PCI2._CRS"})
|
||||
Warning 3046 - ^ Invalid or unknown escape sequence
|
||||
|
||||
badcode.asl 41: Name (ESC1, "abcdefg\x00hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
badcode.asl 268: QWordSpace (0xB0, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
|
||||
Error 6139 - Constant out of range ^ (0xB0, allowable: 0xC0-0xFF)
|
||||
|
||||
badcode.asl 25: Mutex (MTX1, 32)
|
||||
Error 6125 - ^ SyncLevel must be in the range 0-15
|
||||
|
||||
|
|
@ -146,7 +155,7 @@ badcode.asl 197: Return ("Unexpected Return Value")
|
|||
Warning 3104 - Reserved method should not return a value ^ (_Q22)
|
||||
|
||||
badcode.asl 203: Device (EC)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
badcode.asl 205: Method (_REG, 2)
|
||||
Warning 3079 - ^ _REG has no corresponding Operation Region
|
||||
|
|
@ -256,11 +265,11 @@ Warning 3144 - ^ Method Local is set but never used
|
|||
|
||||
Intel ACPI Component Architecture
|
||||
ASL+ Optimizing Compiler/Disassembler version VVVVVVVV
|
||||
Copyright (c) 2000 - 2020 Intel Corporation
|
||||
Copyright (c) 2000 - 2023 Intel Corporation
|
||||
|
||||
Ignoring all errors, forcing AML file generation
|
||||
|
||||
ASL Input: badcode.asl - 11588 bytes 81 keywords 408 source lines
|
||||
ASL Input: badcode.asl - 11588 bytes 81 keywords 0 source lines
|
||||
AML Output: badcode.aml - 1195 bytes 20 opcodes 61 named objects
|
||||
|
||||
Compilation successful. 45 Errors, 29 Warnings, 11 Remarks, 16 Optimizations, 1 Constants Folded
|
||||
Compilation successful. 46 Errors, 28 Warnings, 11 Remarks, 16 Optimizations, 1 Constants Folded
|
||||
|
|
|
|||
|
|
@ -1,162 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/common/dmtbdump.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/common/dmtbdump.c
|
||||
+++ acpica-unix-20191018/source/common/dmtbdump.c
|
||||
@@ -277,6 +277,8 @@ AcpiDmDumpRsdt (
|
||||
UINT32 Entries;
|
||||
UINT32 Offset;
|
||||
UINT32 i;
|
||||
+ UINT32 Length;
|
||||
+ UINT32 Address;
|
||||
|
||||
|
||||
/* Point to start of table pointer array */
|
||||
@@ -286,12 +288,14 @@ AcpiDmDumpRsdt (
|
||||
|
||||
/* RSDT uses 32-bit pointers */
|
||||
|
||||
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
|
||||
|
||||
for (i = 0; i < Entries; i++)
|
||||
{
|
||||
AcpiDmLineHeader2 (Offset, sizeof (UINT32), "ACPI Table Address", i);
|
||||
- AcpiOsPrintf ("%8.8X\n", Array[i]);
|
||||
+ ACPI_MOVE_32_TO_32(&Address, &Array[i]);
|
||||
+ AcpiOsPrintf ("%8.8X\n", Address);
|
||||
Offset += sizeof (UINT32);
|
||||
}
|
||||
}
|
||||
@@ -317,6 +321,8 @@ AcpiDmDumpXsdt (
|
||||
UINT32 Entries;
|
||||
UINT32 Offset;
|
||||
UINT32 i;
|
||||
+ UINT32 Length;
|
||||
+ UINT64 Address;
|
||||
|
||||
|
||||
/* Point to start of table pointer array */
|
||||
@@ -326,12 +332,14 @@ AcpiDmDumpXsdt (
|
||||
|
||||
/* XSDT uses 64-bit pointers */
|
||||
|
||||
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
|
||||
|
||||
for (i = 0; i < Entries; i++)
|
||||
{
|
||||
AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
|
||||
- AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Array[i]));
|
||||
+ ACPI_MOVE_64_TO_64(&Address, &Array[i]);
|
||||
+ AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Address));
|
||||
Offset += sizeof (UINT64);
|
||||
}
|
||||
}
|
||||
@@ -358,12 +366,12 @@ AcpiDmDumpFadt (
|
||||
ACPI_TABLE_HEADER *Table)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
-
|
||||
+ UINT32 Length;
|
||||
|
||||
/* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
- AcpiDmTableInfoFadt1);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -371,11 +379,9 @@ AcpiDmDumpFadt (
|
||||
|
||||
/* Check for FADT revision 2 fields (ACPI 1.0B MS extensions) */
|
||||
|
||||
- if ((Table->Length > ACPI_FADT_V1_SIZE) &&
|
||||
- (Table->Length <= ACPI_FADT_V2_SIZE))
|
||||
+ if ((Length > ACPI_FADT_V1_SIZE) && (Length <= ACPI_FADT_V2_SIZE))
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
- AcpiDmTableInfoFadt2);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -384,10 +390,9 @@ AcpiDmDumpFadt (
|
||||
|
||||
/* Check for FADT revision 3/4 fields and up (ACPI 2.0+ extended data) */
|
||||
|
||||
- else if (Table->Length > ACPI_FADT_V2_SIZE)
|
||||
+ else if (Length > ACPI_FADT_V2_SIZE)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
- AcpiDmTableInfoFadt3);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt3);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -395,9 +400,9 @@ AcpiDmDumpFadt (
|
||||
|
||||
/* Check for FADT revision 5 fields and up (ACPI 5.0+) */
|
||||
|
||||
- if (Table->Length > ACPI_FADT_V3_SIZE)
|
||||
+ if (Length > ACPI_FADT_V3_SIZE)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt5);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -407,9 +412,9 @@ AcpiDmDumpFadt (
|
||||
|
||||
/* Check for FADT revision 6 fields and up (ACPI 6.0+) */
|
||||
|
||||
- if (Table->Length > ACPI_FADT_V3_SIZE)
|
||||
+ if (Length > ACPI_FADT_V3_SIZE)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt6);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -420,11 +425,11 @@ AcpiDmDumpFadt (
|
||||
|
||||
/* Validate various fields in the FADT, including length */
|
||||
|
||||
- AcpiTbCreateLocalFadt (Table, Table->Length);
|
||||
+ AcpiTbCreateLocalFadt (Table, Length);
|
||||
|
||||
/* Validate FADT length against the revision */
|
||||
|
||||
- AcpiDmValidateFadtLength (Table->Revision, Table->Length);
|
||||
+ AcpiDmValidateFadtLength (Table->Revision, Length);
|
||||
}
|
||||
|
||||
|
||||
@@ -450,6 +455,7 @@ AcpiDmValidateFadtLength (
|
||||
UINT32 Length)
|
||||
{
|
||||
UINT32 ExpectedLength;
|
||||
+ UINT32 Tmp32;
|
||||
|
||||
|
||||
switch (Revision)
|
||||
@@ -485,7 +491,8 @@ AcpiDmValidateFadtLength (
|
||||
return;
|
||||
}
|
||||
|
||||
- if (Length == ExpectedLength)
|
||||
+ ACPI_MOVE_32_TO_32(&Tmp32, &Length);
|
||||
+ if (Tmp32 == ExpectedLength)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -493,5 +500,5 @@ AcpiDmValidateFadtLength (
|
||||
AcpiOsPrintf (
|
||||
"\n// ACPI Warning: FADT revision %X does not match length: "
|
||||
"found %X expected %X\n",
|
||||
- Revision, Length, ExpectedLength);
|
||||
+ Revision, Tmp32, ExpectedLength);
|
||||
}
|
||||
|
|
@ -1,637 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/common/dmtbdump1.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/common/dmtbdump1.c
|
||||
+++ acpica-unix-20191018/source/common/dmtbdump1.c
|
||||
@@ -79,17 +79,21 @@ AcpiDmDumpAsf (
|
||||
UINT32 DataOffset = 0;
|
||||
UINT32 i;
|
||||
UINT8 Type;
|
||||
+ UINT32 Len;
|
||||
+ UINT16 SubLen;
|
||||
|
||||
|
||||
/* No main table, only subtables */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Len, &Table->Length);
|
||||
Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Len)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Subtable->Header.Length, AcpiDmTableInfoAsfHdr);
|
||||
+ ACPI_MOVE_16_TO_16(&SubLen, &Subtable->Header.Length);
|
||||
+ Status = AcpiDmDumpTable (Len, Offset, Subtable,
|
||||
+ SubLen, AcpiDmTableInfoAsfHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -146,8 +150,7 @@ AcpiDmDumpAsf (
|
||||
return;
|
||||
}
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Subtable->Header.Length, InfoTable);
|
||||
+ Status = AcpiDmDumpTable (Len, Offset, Subtable, SubLen, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -163,7 +166,7 @@ AcpiDmDumpAsf (
|
||||
for (i = 0; i < DataCount; i++)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, DataOffset,
|
||||
+ Status = AcpiDmDumpTable (Len, DataOffset,
|
||||
DataTable, DataLength, DataInfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -209,15 +212,14 @@ AcpiDmDumpAsf (
|
||||
|
||||
/* Point to next subtable */
|
||||
|
||||
- if (!Subtable->Header.Length)
|
||||
+ if (!SubLen)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid zero subtable header length\n");
|
||||
return;
|
||||
}
|
||||
|
||||
- Offset += Subtable->Header.Length;
|
||||
- Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Subtable,
|
||||
- Subtable->Header.Length);
|
||||
+ Offset += SubLen;
|
||||
+ Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Subtable, SubLen);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,12 +243,13 @@ AcpiDmDumpCpep (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_CPEP_POLLING *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_CPEP);
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -256,7 +259,7 @@ AcpiDmDumpCpep (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
@@ -296,7 +299,10 @@ AcpiDmDumpCsrt (
|
||||
ACPI_CSRT_GROUP *Subtable;
|
||||
ACPI_CSRT_SHARED_INFO *SharedInfoTable;
|
||||
ACPI_CSRT_DESCRIPTOR *SubSubtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
+ UINT32 SubLength;
|
||||
+ UINT32 SubSubLength;
|
||||
+ UINT32 SharedInfoLength;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_CSRT);
|
||||
UINT32 SubOffset;
|
||||
UINT32 SubSubOffset;
|
||||
@@ -307,14 +313,16 @@ AcpiDmDumpCsrt (
|
||||
|
||||
/* Subtables (Resource Groups) */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Resource group subtable */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_32_TO_32(&SubLength, &Subtable->Length);
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoCsrt0);
|
||||
+ SubLength, AcpiDmTableInfoCsrt0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -334,19 +342,20 @@ AcpiDmDumpCsrt (
|
||||
return;
|
||||
}
|
||||
|
||||
- SubOffset += Subtable->SharedInfoLength;
|
||||
+ ACPI_MOVE_32_TO_32(&SharedInfoLength, &Subtable->SharedInfoLength);
|
||||
+ SubOffset += SharedInfoLength;
|
||||
|
||||
/* Sub-Subtables (Resource Descriptors) */
|
||||
|
||||
SubSubtable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, Table,
|
||||
Offset + SubOffset);
|
||||
|
||||
- while ((SubOffset < Subtable->Length) &&
|
||||
- ((Offset + SubOffset) < Table->Length))
|
||||
+ while ((SubOffset < SubLength) && ((Offset + SubOffset) < Length))
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_32_TO_32(&SubSubLength, &SubSubtable->Length);
|
||||
Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubtable,
|
||||
- SubSubtable->Length, AcpiDmTableInfoCsrt2);
|
||||
+ SubSubLength, AcpiDmTableInfoCsrt2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -356,7 +365,7 @@ AcpiDmDumpCsrt (
|
||||
|
||||
/* Resource-specific info buffer */
|
||||
|
||||
- InfoLength = SubSubtable->Length - SubSubOffset;
|
||||
+ InfoLength = SubSubLength - SubSubOffset;
|
||||
if (InfoLength)
|
||||
{
|
||||
Status = AcpiDmDumpTable (Length,
|
||||
@@ -370,16 +379,15 @@ AcpiDmDumpCsrt (
|
||||
|
||||
/* Point to next sub-subtable */
|
||||
|
||||
- SubOffset += SubSubtable->Length;
|
||||
+ SubOffset += SubSubLength;
|
||||
SubSubtable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, SubSubtable,
|
||||
- SubSubtable->Length);
|
||||
+ SubSubLength);
|
||||
}
|
||||
|
||||
/* Point to next subtable */
|
||||
|
||||
- Offset += Subtable->Length;
|
||||
- Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Subtable,
|
||||
- Subtable->Length);
|
||||
+ Offset += SubLength;
|
||||
+ Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Subtable, SubLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,16 +411,20 @@ AcpiDmDumpDbg2 (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_DBG2_DEVICE *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
+ UINT16 SubLength;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_DBG2);
|
||||
UINT32 i;
|
||||
UINT32 ArrayOffset;
|
||||
UINT32 AbsoluteOffset;
|
||||
UINT8 *Array;
|
||||
+ UINT16 Tmp16;
|
||||
+ UINT16 AlsoTmp16;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDbg2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -422,11 +434,12 @@ AcpiDmDumpDbg2 (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoDbg2Device);
|
||||
+ SubLength, AcpiDmTableInfoDbg2Device);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -436,13 +449,13 @@ AcpiDmDumpDbg2 (
|
||||
|
||||
for (i = 0; i < Subtable->RegisterCount; i++)
|
||||
{
|
||||
- ArrayOffset = Subtable->BaseAddressOffset +
|
||||
- (sizeof (ACPI_GENERIC_ADDRESS) * i);
|
||||
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->BaseAddressOffset);
|
||||
+ ArrayOffset = Tmp16 + (sizeof (ACPI_GENERIC_ADDRESS) * i);
|
||||
AbsoluteOffset = Offset + ArrayOffset;
|
||||
Array = (UINT8 *) Subtable + ArrayOffset;
|
||||
|
||||
Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
|
||||
- Subtable->Length, AcpiDmTableInfoDbg2Addr);
|
||||
+ SubLength, AcpiDmTableInfoDbg2Addr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -453,13 +466,13 @@ AcpiDmDumpDbg2 (
|
||||
|
||||
for (i = 0; i < Subtable->RegisterCount; i++)
|
||||
{
|
||||
- ArrayOffset = Subtable->AddressSizeOffset +
|
||||
- (sizeof (UINT32) * i);
|
||||
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->AddressSizeOffset);
|
||||
+ ArrayOffset = Tmp16 + (sizeof (UINT32) * i);
|
||||
AbsoluteOffset = Offset + ArrayOffset;
|
||||
Array = (UINT8 *) Subtable + ArrayOffset;
|
||||
|
||||
Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
|
||||
- Subtable->Length, AcpiDmTableInfoDbg2Size);
|
||||
+ SubLength, AcpiDmTableInfoDbg2Size);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -469,12 +482,13 @@ AcpiDmDumpDbg2 (
|
||||
/* Dump the Namestring (required) */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- ArrayOffset = Subtable->NamepathOffset;
|
||||
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->NamepathOffset);
|
||||
+ ArrayOffset = Tmp16;
|
||||
AbsoluteOffset = Offset + ArrayOffset;
|
||||
Array = (UINT8 *) Subtable + ArrayOffset;
|
||||
|
||||
Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
|
||||
- Subtable->Length, AcpiDmTableInfoDbg2Name);
|
||||
+ SubLength, AcpiDmTableInfoDbg2Name);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -484,9 +498,10 @@ AcpiDmDumpDbg2 (
|
||||
|
||||
if (Subtable->OemDataOffset)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Length, Offset + Subtable->OemDataOffset,
|
||||
- Table, Subtable->OemDataLength,
|
||||
- AcpiDmTableInfoDbg2OemData);
|
||||
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->OemDataOffset);
|
||||
+ ACPI_MOVE_16_TO_16(&AlsoTmp16, &Subtable->OemDataLength);
|
||||
+ Status = AcpiDmDumpTable (Length, Offset + Tmp16,
|
||||
+ Table, AlsoTmp16, AcpiDmTableInfoDbg2OemData);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -495,9 +510,9 @@ AcpiDmDumpDbg2 (
|
||||
|
||||
/* Point to next subtable */
|
||||
|
||||
- Offset += Subtable->Length;
|
||||
+ Offset += SubLength;
|
||||
Subtable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Subtable,
|
||||
- Subtable->Length);
|
||||
+ SubLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -521,17 +536,20 @@ AcpiDmDumpDmar (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_DMAR_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
+ UINT16 SubLength;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_DMAR);
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
ACPI_DMAR_DEVICE_SCOPE *ScopeTable;
|
||||
UINT32 ScopeOffset;
|
||||
UINT8 *PciPath;
|
||||
UINT32 PathOffset;
|
||||
+ UINT16 SubType;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -541,13 +559,14 @@ AcpiDmDumpDmar (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoDmarHdr);
|
||||
+ SubLength, AcpiDmTableInfoDmarHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -555,7 +574,8 @@ AcpiDmDumpDmar (
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
|
||||
- switch (Subtable->Type)
|
||||
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||
+ switch (SubType)
|
||||
{
|
||||
case ACPI_DMAR_TYPE_HARDWARE_UNIT:
|
||||
|
||||
@@ -590,12 +610,12 @@ AcpiDmDumpDmar (
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n",
|
||||
- Subtable->Type);
|
||||
+ SubType);
|
||||
return;
|
||||
}
|
||||
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, InfoTable);
|
||||
+ SubLength, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -604,8 +624,8 @@ AcpiDmDumpDmar (
|
||||
/*
|
||||
* Dump the optional device scope entries
|
||||
*/
|
||||
- if ((Subtable->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
|
||||
- (Subtable->Type == ACPI_DMAR_TYPE_NAMESPACE))
|
||||
+ if ((SubType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
|
||||
+ (SubType == ACPI_DMAR_TYPE_NAMESPACE))
|
||||
{
|
||||
/* These types do not support device scopes */
|
||||
|
||||
@@ -613,7 +633,7 @@ AcpiDmDumpDmar (
|
||||
}
|
||||
|
||||
ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable, ScopeOffset);
|
||||
- while (ScopeOffset < Subtable->Length)
|
||||
+ while (ScopeOffset < SubLength)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable,
|
||||
@@ -654,9 +674,8 @@ AcpiDmDumpDmar (
|
||||
NextSubtable:
|
||||
/* Point to next subtable */
|
||||
|
||||
- Offset += Subtable->Length;
|
||||
- Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Subtable,
|
||||
- Subtable->Length);
|
||||
+ Offset += SubLength;
|
||||
+ Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Subtable, SubLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -683,12 +702,15 @@ AcpiDmDumpDrtm (
|
||||
ACPI_DRTM_RESOURCE_LIST *DrtmRl;
|
||||
ACPI_DRTM_DPS_ID *DrtmDps;
|
||||
UINT32 Count;
|
||||
+ UINT32 ValidatedCount;
|
||||
+ UINT32 ResourceCount;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
- AcpiDmTableInfoDrtm);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDrtm);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -702,7 +724,7 @@ AcpiDmDumpDrtm (
|
||||
|
||||
DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset);
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||
DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables),
|
||||
AcpiDmTableInfoDrtm0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -715,10 +737,11 @@ AcpiDmDumpDrtm (
|
||||
/* Dump Validated table addresses */
|
||||
|
||||
Count = 0;
|
||||
- while ((Offset < Table->Length) &&
|
||||
- (DrtmVtl->ValidatedTableCount > Count))
|
||||
+ ACPI_MOVE_32_TO_32(&ValidatedCount, &DrtmVtl->ValidatedTableCount);
|
||||
+ while ((Offset < Length) &&
|
||||
+ (ValidatedCount > Count))
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||
ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64),
|
||||
AcpiDmTableInfoDrtm0a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -734,7 +757,7 @@ AcpiDmDumpDrtm (
|
||||
|
||||
DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset);
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||
DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources),
|
||||
AcpiDmTableInfoDrtm1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -747,10 +770,11 @@ AcpiDmDumpDrtm (
|
||||
/* Dump the Resource List */
|
||||
|
||||
Count = 0;
|
||||
- while ((Offset < Table->Length) &&
|
||||
- (DrtmRl->ResourceCount > Count))
|
||||
+ ACPI_MOVE_32_TO_32(&ResourceCount, &DrtmRl->ResourceCount);
|
||||
+ while ((Offset < Length) &&
|
||||
+ (ResourceCount > Count))
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||
ACPI_ADD_PTR (void, Table, Offset),
|
||||
sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -766,7 +790,7 @@ AcpiDmDumpDrtm (
|
||||
|
||||
DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset);
|
||||
AcpiOsPrintf ("\n");
|
||||
- (void) AcpiDmDumpTable (Table->Length, Offset,
|
||||
+ (void) AcpiDmDumpTable (Length, Offset,
|
||||
DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2);
|
||||
}
|
||||
|
||||
@@ -790,12 +814,13 @@ AcpiDmDumpEinj (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_WHEA_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_EINJ);
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoEinj);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -805,7 +830,7 @@ AcpiDmDumpEinj (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
@@ -843,12 +868,13 @@ AcpiDmDumpErst (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_WHEA_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_ERST);
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoErst);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -858,7 +884,7 @@ AcpiDmDumpErst (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
@@ -896,17 +922,19 @@ AcpiDmDumpFpdt (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_FPDT_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_FPDT);
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
+ UINT16 Type;
|
||||
|
||||
|
||||
/* There is no main table (other than the standard ACPI header) */
|
||||
|
||||
/* Subtables */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
@@ -918,7 +946,8 @@ AcpiDmDumpFpdt (
|
||||
return;
|
||||
}
|
||||
|
||||
- switch (Subtable->Type)
|
||||
+ ACPI_MOVE_16_TO_16(&Type, &Subtable->Type);
|
||||
+ switch (Type)
|
||||
{
|
||||
case ACPI_FPDT_TYPE_BOOT:
|
||||
|
||||
@@ -932,8 +961,7 @@ AcpiDmDumpFpdt (
|
||||
|
||||
default:
|
||||
|
||||
- AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n",
|
||||
- Subtable->Type);
|
||||
+ AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", Type);
|
||||
|
||||
/* Attempt to continue */
|
||||
|
||||
@@ -981,16 +1009,19 @@ AcpiDmDumpGtdt (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_GTDT_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
+ UINT16 SubLength;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_GTDT);
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
UINT32 SubtableLength;
|
||||
UINT32 GtCount;
|
||||
+ UINT32 Tmp32;
|
||||
ACPI_GTDT_TIMER_ENTRY *GtxTable;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoGtdt);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -1017,7 +1048,7 @@ AcpiDmDumpGtdt (
|
||||
|
||||
/* Subtables */
|
||||
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
@@ -1035,8 +1066,9 @@ AcpiDmDumpGtdt (
|
||||
case ACPI_GTDT_TYPE_TIMER_BLOCK:
|
||||
|
||||
SubtableLength = sizeof (ACPI_GTDT_TIMER_BLOCK);
|
||||
- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
|
||||
+ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
|
||||
Subtable))->TimerCount;
|
||||
+ ACPI_MOVE_32_TO_32(&GtCount, &Tmp32);
|
||||
|
||||
InfoTable = AcpiDmTableInfoGtdt0;
|
||||
break;
|
||||
@@ -1057,8 +1089,9 @@ AcpiDmDumpGtdt (
|
||||
return;
|
||||
}
|
||||
|
||||
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, InfoTable);
|
||||
+ SubLength, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1117,16 +1150,18 @@ AcpiDmDumpHest (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_HEST_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_HEST);
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
UINT32 SubtableLength;
|
||||
UINT32 BankCount;
|
||||
ACPI_HEST_IA_ERROR_BANK *BankTable;
|
||||
+ UINT16 SubType;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -1136,10 +1171,11 @@ AcpiDmDumpHest (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
BankCount = 0;
|
||||
- switch (Subtable->Type)
|
||||
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||
+ switch (SubType)
|
||||
{
|
||||
case ACPI_HEST_TYPE_IA32_CHECK:
|
||||
|
||||
|
|
@ -1,887 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/common/dmtbdump2.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/common/dmtbdump2.c
|
||||
+++ acpica-unix-20191018/source/common/dmtbdump2.c
|
||||
@@ -75,16 +75,23 @@ AcpiDmDumpIort (
|
||||
ACPI_IORT_SMMU *IortSmmu = NULL;
|
||||
UINT32 Offset;
|
||||
UINT32 NodeOffset;
|
||||
+ UINT16 NodeLength;
|
||||
UINT32 Length;
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
char *String;
|
||||
UINT32 i;
|
||||
UINT32 MappingByteLength;
|
||||
+ UINT32 TableLen;
|
||||
+ UINT32 ItsCount;
|
||||
+ UINT32 MappingCount;
|
||||
+ UINT32 CtxIntCount;
|
||||
+ UINT32 PmuIntCount;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIort);
|
||||
+ ACPI_MOVE_32_TO_32(&TableLen, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (TableLen, 0, Table, 0, AcpiDmTableInfoIort);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -95,18 +102,19 @@ AcpiDmDumpIort (
|
||||
|
||||
/* Dump the OptionalPadding (optional) */
|
||||
|
||||
- if (Iort->NodeOffset > Offset)
|
||||
+ ACPI_MOVE_32_TO_32(&NodeOffset, &Iort->NodeOffset);
|
||||
+ if (NodeOffset > Offset)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Table,
|
||||
- Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad);
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset, Table,
|
||||
+ NodeOffset - Offset, AcpiDmTableInfoIortPad);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
- Offset = Iort->NodeOffset;
|
||||
- while (Offset < Table->Length)
|
||||
+ ACPI_MOVE_32_TO_32(&Offset, &Iort->NodeOffset);
|
||||
+ while (Offset < TableLen)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
@@ -142,7 +150,8 @@ AcpiDmDumpIort (
|
||||
case ACPI_IORT_NODE_PCI_ROOT_COMPLEX:
|
||||
|
||||
InfoTable = AcpiDmTableInfoIort2;
|
||||
- Length = IortNode->Length - NodeOffset;
|
||||
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||
+ Length = NodeLength - NodeOffset;
|
||||
break;
|
||||
|
||||
case ACPI_IORT_NODE_SMMU:
|
||||
@@ -155,7 +164,8 @@ AcpiDmDumpIort (
|
||||
case ACPI_IORT_NODE_SMMU_V3:
|
||||
|
||||
InfoTable = AcpiDmTableInfoIort4;
|
||||
- Length = IortNode->Length - NodeOffset;
|
||||
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||
+ Length = NodeLength - NodeOffset;
|
||||
break;
|
||||
|
||||
case ACPI_IORT_NODE_PMCG:
|
||||
@@ -171,7 +181,8 @@ AcpiDmDumpIort (
|
||||
|
||||
/* Attempt to continue */
|
||||
|
||||
- if (!IortNode->Length)
|
||||
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||
+ if (!NodeLength)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid zero length IORT node\n");
|
||||
return;
|
||||
@@ -182,7 +193,7 @@ AcpiDmDumpIort (
|
||||
/* Dump the node subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||
Length, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -202,9 +213,10 @@ AcpiDmDumpIort (
|
||||
|
||||
if (IortItsGroup)
|
||||
{
|
||||
- for (i = 0; i < IortItsGroup->ItsCount; i++)
|
||||
+ ACPI_MOVE_32_TO_32(&ItsCount, &IortItsGroup->ItsCount);
|
||||
+ for (i = 0; i < ItsCount; i++)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||
4, AcpiDmTableInfoIort0a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -221,12 +233,13 @@ AcpiDmDumpIort (
|
||||
|
||||
/* Dump the Padding (optional) */
|
||||
|
||||
- if (IortNode->Length > NodeOffset)
|
||||
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||
+ if (NodeLength > NodeOffset)
|
||||
{
|
||||
MappingByteLength =
|
||||
IortNode->MappingCount * sizeof (ACPI_IORT_ID_MAPPING);
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
- Table, IortNode->Length - NodeOffset - MappingByteLength,
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
+ Table, NodeLength - NodeOffset - MappingByteLength,
|
||||
AcpiDmTableInfoIort1a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -244,8 +257,8 @@ AcpiDmDumpIort (
|
||||
if (IortSmmu)
|
||||
{
|
||||
Length = 2 * sizeof (UINT64);
|
||||
- NodeOffset = IortSmmu->GlobalInterruptOffset;
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->GlobalInterruptOffset);
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||
Length, AcpiDmTableInfoIort3a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -253,10 +266,11 @@ AcpiDmDumpIort (
|
||||
return;
|
||||
}
|
||||
|
||||
- NodeOffset = IortSmmu->ContextInterruptOffset;
|
||||
- for (i = 0; i < IortSmmu->ContextInterruptCount; i++)
|
||||
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->ContextInterruptOffset);
|
||||
+ ACPI_MOVE_32_TO_32(&CtxIntCount, &IortSmmu->ContextInterruptCount);
|
||||
+ for (i = 0; i < CtxIntCount; i++)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||
8, AcpiDmTableInfoIort3b);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -267,10 +281,11 @@ AcpiDmDumpIort (
|
||||
NodeOffset += 8;
|
||||
}
|
||||
|
||||
- NodeOffset = IortSmmu->PmuInterruptOffset;
|
||||
- for (i = 0; i < IortSmmu->PmuInterruptCount; i++)
|
||||
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->PmuInterruptOffset);
|
||||
+ ACPI_MOVE_32_TO_32(&PmuIntCount, &IortSmmu->PmuInterruptCount);
|
||||
+ for (i = 0; i < PmuIntCount; i++)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||
8, AcpiDmTableInfoIort3c);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -290,12 +305,13 @@ AcpiDmDumpIort (
|
||||
|
||||
/* Dump the ID mappings */
|
||||
|
||||
- NodeOffset = IortNode->MappingOffset;
|
||||
- for (i = 0; i < IortNode->MappingCount; i++)
|
||||
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortNode->MappingOffset);
|
||||
+ ACPI_MOVE_32_TO_32(&MappingCount, &IortNode->MappingCount);
|
||||
+ for (i = 0; i < MappingCount; i++)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
Length = sizeof (ACPI_IORT_ID_MAPPING);
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||
Length, AcpiDmTableInfoIortMap);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -309,7 +325,8 @@ AcpiDmDumpIort (
|
||||
NextSubtable:
|
||||
/* Point to next node subtable */
|
||||
|
||||
- Offset += IortNode->Length;
|
||||
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||
+ Offset += NodeLength;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,11 +357,14 @@ AcpiDmDumpIvrs (
|
||||
ACPI_IVRS_DE_HEADER *DeviceEntry;
|
||||
ACPI_IVRS_HEADER *Subtable;
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
+ UINT32 Length;
|
||||
+ UINT16 SubLength;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIvrs);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoIvrs);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -353,13 +373,14 @@ AcpiDmDumpIvrs (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoIvrsHdr);
|
||||
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
+ SubLength, AcpiDmTableInfoIvrsHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -386,7 +407,7 @@ AcpiDmDumpIvrs (
|
||||
|
||||
/* Attempt to continue */
|
||||
|
||||
- if (!Subtable->Length)
|
||||
+ if (!SubLength)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid zero length subtable\n");
|
||||
return;
|
||||
@@ -397,8 +418,8 @@ AcpiDmDumpIvrs (
|
||||
/* Dump the subtable */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Subtable->Length, InfoTable);
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
+ SubLength, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -412,7 +433,7 @@ AcpiDmDumpIvrs (
|
||||
DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable,
|
||||
sizeof (ACPI_IVRS_HARDWARE));
|
||||
|
||||
- while (EntryOffset < (Offset + Subtable->Length))
|
||||
+ while (EntryOffset < (Offset + SubLength))
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
/*
|
||||
@@ -474,7 +495,7 @@ AcpiDmDumpIvrs (
|
||||
|
||||
/* Dump the Device Entry */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, EntryOffset,
|
||||
+ Status = AcpiDmDumpTable (Length, EntryOffset,
|
||||
DeviceEntry, EntryLength, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -490,8 +511,8 @@ AcpiDmDumpIvrs (
|
||||
NextSubtable:
|
||||
/* Point to next subtable */
|
||||
|
||||
- Offset += Subtable->Length;
|
||||
- Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Subtable, Subtable->Length);
|
||||
+ Offset += SubLength;
|
||||
+ Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Subtable, SubLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -517,7 +538,7 @@ AcpiDmDumpLpit (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_LPIT_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_LPIT);
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
UINT32 SubtableLength;
|
||||
@@ -525,8 +546,9 @@ AcpiDmDumpLpit (
|
||||
|
||||
/* Subtables */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Subtable = ACPI_ADD_PTR (ACPI_LPIT_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
@@ -590,13 +612,14 @@ AcpiDmDumpMadt (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_SUBTABLE_HEADER *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_MADT);
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -606,7 +629,7 @@ AcpiDmDumpMadt (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
@@ -752,11 +775,13 @@ AcpiDmDumpMcfg (
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_MCFG);
|
||||
ACPI_MCFG_ALLOCATION *Subtable;
|
||||
+ UINT32 Len;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg);
|
||||
+ ACPI_MOVE_32_TO_32(&Len, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Len, 0, Table, 0, AcpiDmTableInfoMcfg);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -765,17 +790,17 @@ AcpiDmDumpMcfg (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Len)
|
||||
{
|
||||
- if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
|
||||
+ if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Len)
|
||||
{
|
||||
AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n",
|
||||
- (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
|
||||
+ (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Len));
|
||||
return;
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Len, Offset, Subtable,
|
||||
sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -809,6 +834,7 @@ AcpiDmDumpMpst (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_MPST);
|
||||
+ ACPI_TABLE_MPST *Mpst;
|
||||
ACPI_MPST_POWER_NODE *Subtable0;
|
||||
ACPI_MPST_POWER_STATE *Subtable0A;
|
||||
ACPI_MPST_COMPONENT *Subtable0B;
|
||||
@@ -817,11 +843,13 @@ AcpiDmDumpMpst (
|
||||
UINT16 SubtableCount;
|
||||
UINT32 PowerStateCount;
|
||||
UINT32 ComponentCount;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMpst);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMpst);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -829,13 +857,14 @@ AcpiDmDumpMpst (
|
||||
|
||||
/* Subtable: Memory Power Node(s) */
|
||||
|
||||
- SubtableCount = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
|
||||
+ Mpst = ACPI_CAST_PTR (ACPI_TABLE_MPST, Table);
|
||||
+ ACPI_MOVE_16_TO_16(&SubtableCount, &Mpst->PowerNodeCount);
|
||||
Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Table, Offset);
|
||||
|
||||
- while ((Offset < Table->Length) && SubtableCount)
|
||||
+ while ((Offset < Length) && SubtableCount)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable0,
|
||||
sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -844,8 +873,8 @@ AcpiDmDumpMpst (
|
||||
|
||||
/* Extract the sub-subtable counts */
|
||||
|
||||
- PowerStateCount = Subtable0->NumPowerStates;
|
||||
- ComponentCount = Subtable0->NumPhysicalComponents;
|
||||
+ ACPI_MOVE_32_TO_32(&PowerStateCount, &Subtable0->NumPowerStates);
|
||||
+ ACPI_MOVE_32_TO_32(&ComponentCount, &Subtable0->NumPhysicalComponents);
|
||||
Offset += sizeof (ACPI_MPST_POWER_NODE);
|
||||
|
||||
/* Sub-subtables - Memory Power State Structure(s) */
|
||||
@@ -856,7 +885,7 @@ AcpiDmDumpMpst (
|
||||
while (PowerStateCount)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0A,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable0A,
|
||||
sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -866,7 +895,7 @@ AcpiDmDumpMpst (
|
||||
Subtable0A++;
|
||||
PowerStateCount--;
|
||||
Offset += sizeof (ACPI_MPST_POWER_STATE);
|
||||
- }
|
||||
+ }
|
||||
|
||||
/* Sub-subtables - Physical Component ID Structure(s) */
|
||||
|
||||
@@ -879,7 +908,7 @@ AcpiDmDumpMpst (
|
||||
|
||||
while (ComponentCount)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0B,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable0B,
|
||||
sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -894,17 +923,19 @@ AcpiDmDumpMpst (
|
||||
/* Point to next Memory Power Node subtable */
|
||||
|
||||
SubtableCount--;
|
||||
+ ACPI_MOVE_32_TO_32(&PowerStateCount, &Subtable0->NumPowerStates);
|
||||
+ ACPI_MOVE_32_TO_32(&ComponentCount, &Subtable0->NumPhysicalComponents);
|
||||
Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Subtable0,
|
||||
sizeof (ACPI_MPST_POWER_NODE) +
|
||||
- (sizeof (ACPI_MPST_POWER_STATE) * Subtable0->NumPowerStates) +
|
||||
- (sizeof (ACPI_MPST_COMPONENT) * Subtable0->NumPhysicalComponents));
|
||||
+ (sizeof (ACPI_MPST_POWER_STATE) * PowerStateCount) +
|
||||
+ (sizeof (ACPI_MPST_COMPONENT) * ComponentCount));
|
||||
}
|
||||
|
||||
/* Subtable: Count of Memory Power State Characteristic structures */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
Subtable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable0);
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable1,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable1,
|
||||
sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -919,10 +950,10 @@ AcpiDmDumpMpst (
|
||||
Subtable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, Subtable1,
|
||||
sizeof (ACPI_MPST_DATA_HDR));
|
||||
|
||||
- while ((Offset < Table->Length) && SubtableCount)
|
||||
+ while ((Offset < Length) && SubtableCount)
|
||||
{
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable2,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable2,
|
||||
sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -955,11 +986,13 @@ AcpiDmDumpMsct (
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_MSCT);
|
||||
ACPI_MSCT_PROXIMITY *Subtable;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMsct);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMsct);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -968,12 +1001,12 @@ AcpiDmDumpMsct (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -1008,11 +1041,13 @@ AcpiDmDumpMtmr (
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_MTMR);
|
||||
ACPI_MTMR_ENTRY *Subtable;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMtmr);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMtmr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1021,12 +1056,12 @@ AcpiDmDumpMtmr (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -1068,11 +1103,17 @@ AcpiDmDumpNfit (
|
||||
ACPI_NFIT_SMBIOS *SmbiosInfo = NULL;
|
||||
ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL;
|
||||
UINT32 i;
|
||||
+ UINT32 TableLength;
|
||||
+ UINT16 SubLength;
|
||||
+ UINT16 SubType;
|
||||
+ UINT32 Count;
|
||||
+ UINT16 Count16;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoNfit);
|
||||
+ ACPI_MOVE_32_TO_32(&TableLength, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNfit);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1081,19 +1122,21 @@ AcpiDmDumpNfit (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < TableLength)
|
||||
{
|
||||
/* NFIT subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoNfitHdr);
|
||||
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||
+ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
|
||||
+ SubLength, AcpiDmTableInfoNfitHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
- switch (Subtable->Type)
|
||||
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||
+ switch (SubType)
|
||||
{
|
||||
case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
|
||||
|
||||
@@ -1148,7 +1191,7 @@ AcpiDmDumpNfit (
|
||||
|
||||
/* Attempt to continue */
|
||||
|
||||
- if (!Subtable->Length)
|
||||
+ if (!SubLength)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid zero length subtable\n");
|
||||
return;
|
||||
@@ -1157,8 +1200,8 @@ AcpiDmDumpNfit (
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Subtable->Length, InfoTable);
|
||||
+ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
|
||||
+ SubLength, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1166,14 +1209,15 @@ AcpiDmDumpNfit (
|
||||
|
||||
/* Per-subtable variable-length fields */
|
||||
|
||||
- switch (Subtable->Type)
|
||||
+ switch (SubType)
|
||||
{
|
||||
case ACPI_NFIT_TYPE_INTERLEAVE:
|
||||
|
||||
Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable);
|
||||
- for (i = 0; i < Interleave->LineCount; i++)
|
||||
+ ACPI_MOVE_32_TO_32(&Count, &Interleave->LineCount);
|
||||
+ for (i = 0; i < Count; i++)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
|
||||
&Interleave->LineOffset[i],
|
||||
sizeof (UINT32), AcpiDmTableInfoNfit2a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -1187,12 +1231,11 @@ AcpiDmDumpNfit (
|
||||
|
||||
case ACPI_NFIT_TYPE_SMBIOS:
|
||||
|
||||
- Length = Subtable->Length -
|
||||
- sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
|
||||
+ Length = SubLength - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
|
||||
|
||||
if (Length)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length,
|
||||
+ Status = AcpiDmDumpTable (TableLength,
|
||||
sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8),
|
||||
SmbiosInfo,
|
||||
Length, AcpiDmTableInfoNfit3a);
|
||||
@@ -1207,9 +1250,10 @@ AcpiDmDumpNfit (
|
||||
case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
|
||||
|
||||
Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable);
|
||||
- for (i = 0; i < Hint->HintCount; i++)
|
||||
+ ACPI_MOVE_16_TO_16(&Count16, &Hint->HintCount);
|
||||
+ for (i = 0; i < Count16; i++)
|
||||
{
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
|
||||
+ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
|
||||
&Hint->HintAddress[i],
|
||||
sizeof (UINT64), AcpiDmTableInfoNfit6a);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -1228,8 +1272,8 @@ AcpiDmDumpNfit (
|
||||
NextSubtable:
|
||||
/* Point to next subtable */
|
||||
|
||||
- Offset += Subtable->Length;
|
||||
- Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Subtable, Subtable->Length);
|
||||
+ Offset += SubLength;
|
||||
+ Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Subtable, SubLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1254,12 +1298,13 @@ AcpiDmDumpPcct (
|
||||
ACPI_STATUS Status;
|
||||
ACPI_PCCT_SUBSPACE *Subtable;
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_PCCT);
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -1269,7 +1314,7 @@ AcpiDmDumpPcct (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
@@ -1409,16 +1454,21 @@ AcpiDmDumpPmtt (
|
||||
ACPI_PMTT_HEADER *MemSubtable;
|
||||
ACPI_PMTT_HEADER *DimmSubtable;
|
||||
ACPI_PMTT_DOMAIN *DomainArray;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_PMTT);
|
||||
UINT32 MemOffset;
|
||||
UINT32 DimmOffset;
|
||||
UINT32 DomainOffset;
|
||||
- UINT32 DomainCount;
|
||||
+ UINT16 DomainCount;
|
||||
+ UINT16 SubLength;
|
||||
+ UINT16 Tmp16;
|
||||
+ UINT16 MemLength;
|
||||
+ UINT16 DimmLength;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -1428,13 +1478,14 @@ AcpiDmDumpPmtt (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoPmttHdr);
|
||||
+ SubLength, AcpiDmTableInfoPmttHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1453,7 +1504,7 @@ AcpiDmDumpPmtt (
|
||||
/* Dump the fixed-length portion of the subtable */
|
||||
|
||||
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
- Subtable->Length, AcpiDmTableInfoPmtt0);
|
||||
+ SubLength, AcpiDmTableInfoPmtt0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1465,15 +1516,16 @@ AcpiDmDumpPmtt (
|
||||
MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Subtable,
|
||||
sizeof (ACPI_PMTT_SOCKET));
|
||||
|
||||
- while (((Offset + MemOffset) < Table->Length) &&
|
||||
- (MemOffset < Subtable->Length))
|
||||
+ while (((Offset + MemOffset) < Length) &&
|
||||
+ (MemOffset < SubLength))
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_16_TO_16(&MemLength, &MemSubtable->Length);
|
||||
Status = AcpiDmDumpTable (Length,
|
||||
Offset + MemOffset, MemSubtable,
|
||||
- MemSubtable->Length, AcpiDmTableInfoPmttHdr);
|
||||
+ MemLength, AcpiDmTableInfoPmttHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1493,7 +1545,7 @@ AcpiDmDumpPmtt (
|
||||
|
||||
Status = AcpiDmDumpTable (Length,
|
||||
Offset + MemOffset, MemSubtable,
|
||||
- MemSubtable->Length, AcpiDmTableInfoPmtt1);
|
||||
+ MemLength, AcpiDmTableInfoPmtt1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1501,13 +1553,14 @@ AcpiDmDumpPmtt (
|
||||
|
||||
/* Walk the variable count of proximity domains */
|
||||
|
||||
- DomainCount = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount;
|
||||
+ Tmp16 = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount;
|
||||
+ ACPI_MOVE_16_TO_16(&DomainCount, &Tmp16);
|
||||
DomainOffset = sizeof (ACPI_PMTT_CONTROLLER);
|
||||
DomainArray = ACPI_ADD_PTR (ACPI_PMTT_DOMAIN, MemSubtable,
|
||||
sizeof (ACPI_PMTT_CONTROLLER));
|
||||
|
||||
- while (((Offset + MemOffset + DomainOffset) < Table->Length) &&
|
||||
- ((MemOffset + DomainOffset) < Subtable->Length) &&
|
||||
+ while (((Offset + MemOffset + DomainOffset) < Length) &&
|
||||
+ ((MemOffset + DomainOffset) < SubLength) &&
|
||||
DomainCount)
|
||||
{
|
||||
Status = AcpiDmDumpTable (Length,
|
||||
@@ -1535,15 +1588,16 @@ AcpiDmDumpPmtt (
|
||||
DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubtable,
|
||||
DomainOffset);
|
||||
|
||||
- while (((Offset + MemOffset + DimmOffset) < Table->Length) &&
|
||||
- (DimmOffset < MemSubtable->Length))
|
||||
+ while (((Offset + MemOffset + DimmOffset) < Length) &&
|
||||
+ (DimmOffset < MemLength))
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
+ ACPI_MOVE_16_TO_16(&DimmLength, &DimmSubtable->Length);
|
||||
Status = AcpiDmDumpTable (Length,
|
||||
Offset + MemOffset + DimmOffset, DimmSubtable,
|
||||
- DimmSubtable->Length, AcpiDmTableInfoPmttHdr);
|
||||
+ DimmLength, AcpiDmTableInfoPmttHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1563,7 +1617,7 @@ AcpiDmDumpPmtt (
|
||||
|
||||
Status = AcpiDmDumpTable (Length,
|
||||
Offset + MemOffset + DimmOffset, DimmSubtable,
|
||||
- DimmSubtable->Length, AcpiDmTableInfoPmtt2);
|
||||
+ DimmLength, AcpiDmTableInfoPmtt2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -1571,23 +1625,22 @@ AcpiDmDumpPmtt (
|
||||
|
||||
/* Point to next DIMM subtable */
|
||||
|
||||
- DimmOffset += DimmSubtable->Length;
|
||||
+ DimmOffset += DimmLength;
|
||||
DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
|
||||
- DimmSubtable, DimmSubtable->Length);
|
||||
+ DimmSubtable, DimmLength);
|
||||
}
|
||||
|
||||
/* Point to next Controller subtable */
|
||||
|
||||
- MemOffset += MemSubtable->Length;
|
||||
+ MemOffset += MemLength;
|
||||
MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
|
||||
- MemSubtable, MemSubtable->Length);
|
||||
+ MemSubtable, MemLength);
|
||||
}
|
||||
|
||||
/* Point to next Socket subtable */
|
||||
|
||||
- Offset += Subtable->Length;
|
||||
- Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
|
||||
- Subtable, Subtable->Length);
|
||||
+ Offset += SubLength;
|
||||
+ Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Subtable, SubLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1748,6 +1801,8 @@ AcpiDmDumpS3pt (
|
||||
ACPI_FPDT_HEADER *Subtable;
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables);
|
||||
+ UINT32 Length;
|
||||
+ UINT16 SubType;
|
||||
|
||||
|
||||
/* Main table */
|
||||
@@ -1758,20 +1813,22 @@ AcpiDmDumpS3pt (
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &S3ptTable->Length);
|
||||
Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, S3ptTable, Offset);
|
||||
- while (Offset < S3ptTable->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
Subtable->Length, AcpiDmTableInfoS3ptHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
- switch (Subtable->Type)
|
||||
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||
+ switch (SubType)
|
||||
{
|
||||
case ACPI_S3PT_TYPE_RESUME:
|
||||
|
||||
@@ -1786,7 +1843,7 @@ AcpiDmDumpS3pt (
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n",
|
||||
- Subtable->Type);
|
||||
+ SubType);
|
||||
|
||||
/* Attempt to continue */
|
||||
|
||||
@@ -1799,7 +1856,7 @@ AcpiDmDumpS3pt (
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
Subtable->Length, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
|
|
@ -1,250 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/common/dmtbdump3.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/common/dmtbdump3.c
|
||||
+++ acpica-unix-20191018/source/common/dmtbdump3.c
|
||||
@@ -68,9 +68,11 @@ void
|
||||
AcpiDmDumpSlic (
|
||||
ACPI_TABLE_HEADER *Table)
|
||||
{
|
||||
+ UINT32 Length;
|
||||
|
||||
- (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table,
|
||||
- Table->Length - sizeof (*Table), AcpiDmTableInfoSlic);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ (void) AcpiDmDumpTable (Length, sizeof (ACPI_TABLE_HEADER), Table,
|
||||
+ Length - sizeof (*Table), AcpiDmTableInfoSlic);
|
||||
}
|
||||
|
||||
|
||||
@@ -93,14 +95,17 @@ AcpiDmDumpSlit (
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset;
|
||||
UINT8 *Row;
|
||||
- UINT32 Localities;
|
||||
+ UINT64 Localities;
|
||||
UINT32 i;
|
||||
UINT32 j;
|
||||
+ UINT32 Length;
|
||||
+ UINT64 Tmp64;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSlit);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -108,7 +113,8 @@ AcpiDmDumpSlit (
|
||||
|
||||
/* Display the Locality NxN Matrix */
|
||||
|
||||
- Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
|
||||
+ Tmp64 = (UINT64) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
|
||||
+ ACPI_MOVE_64_TO_64(&Localities, &Tmp64);
|
||||
Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]);
|
||||
Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
|
||||
|
||||
@@ -121,7 +127,7 @@ AcpiDmDumpSlit (
|
||||
{
|
||||
/* Check for beyond EOT */
|
||||
|
||||
- if (Offset >= Table->Length)
|
||||
+ if (Offset >= Length)
|
||||
{
|
||||
AcpiOsPrintf (
|
||||
"\n**** Not enough room in table for all localities\n");
|
||||
@@ -173,11 +179,13 @@ AcpiDmDumpSrat (
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_SRAT);
|
||||
ACPI_SUBTABLE_HEADER *Subtable;
|
||||
ACPI_DMTABLE_INFO *InfoTable;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSrat);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -186,12 +194,12 @@ AcpiDmDumpSrat (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
Subtable->Length, AcpiDmTableInfoSratHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -245,7 +253,7 @@ AcpiDmDumpSrat (
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
Subtable->Length, InfoTable);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -282,13 +290,14 @@ AcpiDmDumpStao (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
char *Namepath;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT32 StringLength;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_STAO);
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -297,7 +306,7 @@ AcpiDmDumpStao (
|
||||
|
||||
/* The rest of the table consists of Namepath strings */
|
||||
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
Namepath = ACPI_ADD_PTR (char, Table, Offset);
|
||||
StringLength = strlen (Namepath) + 1;
|
||||
@@ -339,11 +348,14 @@ AcpiDmDumpTcpa (
|
||||
ACPI_TABLE_TCPA_HDR *Subtable = ACPI_ADD_PTR (
|
||||
ACPI_TABLE_TCPA_HDR, Table, Offset);
|
||||
ACPI_STATUS Status;
|
||||
+ UINT32 Length;
|
||||
+ UINT16 PlatformClass;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table,
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table,
|
||||
0, AcpiDmTableInfoTcpaHdr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -354,18 +366,19 @@ AcpiDmDumpTcpa (
|
||||
* Examine the PlatformClass field to determine the table type.
|
||||
* Either a client or server table. Only one.
|
||||
*/
|
||||
- switch (CommonHeader->PlatformClass)
|
||||
+ ACPI_MOVE_16_TO_16(&PlatformClass, &CommonHeader->PlatformClass);
|
||||
+ switch (PlatformClass)
|
||||
{
|
||||
case ACPI_TCPA_CLIENT_TABLE:
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Table->Length - Offset, AcpiDmTableInfoTcpaClient);
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
+ Length - Offset, AcpiDmTableInfoTcpaClient);
|
||||
break;
|
||||
|
||||
case ACPI_TCPA_SERVER_TABLE:
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
- Table->Length - Offset, AcpiDmTableInfoTcpaServer);
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
+ Length - Offset, AcpiDmTableInfoTcpaServer);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -512,11 +525,13 @@ AcpiDmDumpVrtc (
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_VRTC);
|
||||
ACPI_VRTC_ENTRY *Subtable;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoVrtc);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoVrtc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -525,12 +540,12 @@ AcpiDmDumpVrtc (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -565,11 +580,13 @@ AcpiDmDumpWdat (
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_WDAT);
|
||||
ACPI_WDAT_ENTRY *Subtable;
|
||||
+ UINT32 Length;
|
||||
|
||||
|
||||
/* Main table */
|
||||
|
||||
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWdat);
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWdat);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
@@ -578,12 +595,12 @@ AcpiDmDumpWdat (
|
||||
/* Subtables */
|
||||
|
||||
Subtable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset);
|
||||
- while (Offset < Table->Length)
|
||||
+ while (Offset < Length)
|
||||
{
|
||||
/* Common subtable header */
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||
sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -618,12 +635,13 @@ AcpiDmDumpWpbt (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_TABLE_WPBT *Subtable;
|
||||
- UINT32 Length = Table->Length;
|
||||
+ UINT32 Length;
|
||||
UINT16 ArgumentsLength;
|
||||
|
||||
|
||||
/* Dump the main table */
|
||||
|
||||
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -633,10 +651,10 @@ AcpiDmDumpWpbt (
|
||||
/* Extract the arguments buffer length from the main table */
|
||||
|
||||
Subtable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table);
|
||||
- ArgumentsLength = Subtable->ArgumentsLength;
|
||||
+ ACPI_MOVE_16_TO_16(&ArgumentsLength, &Subtable->ArgumentsLength);
|
||||
|
||||
/* Dump the arguments buffer */
|
||||
|
||||
- (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength,
|
||||
+ (void) AcpiDmDumpTable (Length, 0, Table, ArgumentsLength,
|
||||
AcpiDmTableInfoWpbt0);
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
Updated versions of upstream often contain fixes that were not seen
|
||||
in the original big-endian patch; we try to capture those here.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@redhat.com>
|
||||
|
||||
Index: acpica-unix-20191018/source/compiler/asllookup.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/asllookup.c
|
||||
+++ acpica-unix-20191018/source/compiler/asllookup.c
|
||||
@@ -249,7 +249,8 @@ LkIsObjectUsed (
|
||||
* ACPI names and are typically not referenced since they are meant
|
||||
* to be called by the host OS.
|
||||
*/
|
||||
- if (Node->Name.Ascii[0] == '_')
|
||||
+ ACPI_MOVE_32_TO_32(&tmp.Ascii, Node->Name.Ascii);
|
||||
+ if (tmp.Ascii[0] == '_')
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
4693
big-endian.patch
4693
big-endian.patch
File diff suppressed because it is too large
Load diff
|
|
@ -1,24 +1,53 @@
|
|||
converterSample.asl 15: Name (b, 5)
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (B___)
|
||||
|
||||
converterSample.asl 16: Name(p008, Package()
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (P008)
|
||||
|
||||
converterSample.asl 48: Name(b,0);
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (B___)
|
||||
|
||||
converterSample.asl 53: Name (a,
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (A___)
|
||||
|
||||
converterSample.asl 68: Name (a1, 0x04)
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (A1__)
|
||||
|
||||
converterSample.asl 15: Name (b, 5)
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (B___)
|
||||
|
||||
converterSample.asl 16: Name(p008, Package()
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (P008)
|
||||
|
||||
converterSample.asl 37: Method(MAIN) {
|
||||
Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\MAIN)
|
||||
|
||||
converterSample.asl 48: Name(b,0);
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (B___)
|
||||
|
||||
converterSample.asl 48: Name(b,0);
|
||||
Remark 2089 - Object is not referenced ^ (Name [B___] is within a method [MAIN])
|
||||
|
||||
converterSample.asl 53: Name (a,
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (A___)
|
||||
|
||||
converterSample.asl 65: Method(SCOP)
|
||||
Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\SCOP)
|
||||
|
||||
converterSample.asl 68: Name (a1, 0x04)
|
||||
Remark 2089 - Object is not referenced ^ (Name [A1__] is within a method [SCOP])
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (A1__)
|
||||
|
||||
converterSample.asl 76: Offset(0),//c37
|
||||
Remark 2158 - ^ Unnecessary/redundant use of Offset operator
|
||||
converterSample.asl 68: Name (a1, 0x04)
|
||||
Remark 2089 - Object is not referenced ^ (Name [A1__] is within a method [SCOP])
|
||||
|
||||
|
||||
Intel ACPI Component Architecture
|
||||
ASL+ Optimizing Compiler/Disassembler version VVVVVVVV
|
||||
Copyright (c) 2000 - 2020 Intel Corporation
|
||||
Copyright (c) 2000 - 2023 Intel Corporation
|
||||
|
||||
ASL Input: converterSample.asl - 1968 bytes 11 keywords 85 source lines
|
||||
AML Output: converterSample.aml - 180 bytes 2 opcodes 9 named objects
|
||||
Ignoring all errors, forcing AML file generation
|
||||
|
||||
Compilation successful. 0 Errors, 0 Warnings, 5 Remarks, 12 Optimizations, 1 Constants Folded
|
||||
ASL Input: converterSample.asl - 1968 bytes 11 keywords 0 source lines
|
||||
AML Output: converterSample.aml - 184 bytes 2 opcodes 9 named objects
|
||||
|
||||
Compilation successful. 0 Errors, 0 Warnings, 9 Remarks, 9 Optimizations
|
||||
|
|
|
|||
|
|
@ -1,99 +0,0 @@
|
|||
From 987a3b5cf7175916e2a4b6ea5b8e70f830dfe732 Mon Sep 17 00:00:00 2001
|
||||
From: Seunghun Han <kkamagui@gmail.com>
|
||||
Date: Wed, 19 Jul 2017 16:47:53 +0900
|
||||
Subject: [PATCH] acpi: acpica: fix acpi operand cache leak in dswstate.c
|
||||
|
||||
I found an ACPI cache leak in ACPI early termination and boot continuing case.
|
||||
|
||||
When early termination occurs due to malicious ACPI table, Linux kernel
|
||||
terminates ACPI function and continues to boot process. While kernel terminates
|
||||
ACPI function, kmem_cache_destroy() reports Acpi-Operand cache leak.
|
||||
|
||||
Boot log of ACPI operand cache leak is as follows:
|
||||
>[ 0.585957] ACPI: Added _OSI(Module Device)
|
||||
>[ 0.587218] ACPI: Added _OSI(Processor Device)
|
||||
>[ 0.588530] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
>[ 0.589790] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
>[ 0.591534] ACPI Error: Illegal I/O port address/length above 64K: C806E00000004002/0x2 (20170303/hwvalid-155)
|
||||
>[ 0.594351] ACPI Exception: AE_LIMIT, Unable to initialize fixed events (20170303/evevent-88)
|
||||
>[ 0.597858] ACPI: Unable to start the ACPI Interpreter
|
||||
>[ 0.599162] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
|
||||
>[ 0.601836] kmem_cache_destroy Acpi-Operand: Slab cache still has objects
|
||||
>[ 0.603556] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5 #26
|
||||
>[ 0.605159] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
|
||||
>[ 0.609177] Call Trace:
|
||||
>[ 0.610063] ? dump_stack+0x5c/0x81
|
||||
>[ 0.611118] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
>[ 0.612632] ? acpi_sleep_proc_init+0x27/0x27
|
||||
>[ 0.613906] ? acpi_os_delete_cache+0xa/0x10
|
||||
>[ 0.617986] ? acpi_ut_delete_caches+0x3f/0x7b
|
||||
>[ 0.619293] ? acpi_terminate+0xa/0x14
|
||||
>[ 0.620394] ? acpi_init+0x2af/0x34f
|
||||
>[ 0.621616] ? __class_create+0x4c/0x80
|
||||
>[ 0.623412] ? video_setup+0x7f/0x7f
|
||||
>[ 0.624585] ? acpi_sleep_proc_init+0x27/0x27
|
||||
>[ 0.625861] ? do_one_initcall+0x4e/0x1a0
|
||||
>[ 0.627513] ? kernel_init_freeable+0x19e/0x21f
|
||||
>[ 0.628972] ? rest_init+0x80/0x80
|
||||
>[ 0.630043] ? kernel_init+0xa/0x100
|
||||
>[ 0.631084] ? ret_from_fork+0x25/0x30
|
||||
>[ 0.633343] vgaarb: loaded
|
||||
>[ 0.635036] EDAC MC: Ver: 3.0.0
|
||||
>[ 0.638601] PCI: Probing PCI hardware
|
||||
>[ 0.639833] PCI host bridge to bus 0000:00
|
||||
>[ 0.641031] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
|
||||
> ... Continue to boot and log is omitted ...
|
||||
|
||||
I analyzed this memory leak in detail and found acpi_ds_obj_stack_pop_and_
|
||||
delete() function miscalculated the top of the stack. acpi_ds_obj_stack_push()
|
||||
function uses walk_state->operand_index for start position of the top, but
|
||||
acpi_ds_obj_stack_pop_and_delete() function considers index 0 for it.
|
||||
Therefore, this causes acpi operand memory leak.
|
||||
|
||||
This cache leak causes a security threat because an old kernel (<= 4.9) shows
|
||||
memory locations of kernel functions in stack dump. Some malicious users
|
||||
could use this information to neutralize kernel ASLR.
|
||||
|
||||
I made a patch to fix ACPI operand cache leak.
|
||||
|
||||
Signed-off-by: Seunghun Han <kkamagui@gmail.com>
|
||||
|
||||
Github-Location: https://github.com/acpica/acpica/pull/295/commits/987a3b5cf7175916e2a4b6ea5b8e70f830dfe732
|
||||
---
|
||||
source/components/dispatcher/dsutils.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: acpica-unix-20191018/source/components/dispatcher/dsutils.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/dispatcher/dsutils.c
|
||||
+++ acpica-unix-20191018/source/components/dispatcher/dsutils.c
|
||||
@@ -759,6 +759,8 @@ AcpiDsCreateOperands (
|
||||
ACPI_PARSE_OBJECT *Arguments[ACPI_OBJ_NUM_OPERANDS];
|
||||
UINT32 ArgCount = 0;
|
||||
UINT32 Index = WalkState->NumOperands;
|
||||
+ UINT32 PrevNumOperands = WalkState->NumOperands;
|
||||
+ UINT32 NewNumOperands;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
@@ -791,6 +793,7 @@ AcpiDsCreateOperands (
|
||||
|
||||
/* Create the interpreter arguments, in reverse order */
|
||||
|
||||
+ NewNumOperands = Index;
|
||||
Index--;
|
||||
for (i = 0; i < ArgCount; i++)
|
||||
{
|
||||
@@ -818,7 +821,11 @@ Cleanup:
|
||||
* pop everything off of the operand stack and delete those
|
||||
* objects
|
||||
*/
|
||||
- AcpiDsObjStackPopAndDelete (ArgCount, WalkState);
|
||||
+ WalkState->NumOperands = i;
|
||||
+ AcpiDsObjStackPopAndDelete (NewNumOperands, WalkState);
|
||||
+
|
||||
+ /* Restore operand count */
|
||||
+ WalkState->NumOperands = PrevNumOperands;
|
||||
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %u", Index));
|
||||
return_ACPI_STATUS (Status);
|
||||
|
|
@ -1,216 +0,0 @@
|
|||
From 4a0243ecb4c94e2d73510d096c5ea4d0711fc6c0 Mon Sep 17 00:00:00 2001
|
||||
From: Seunghun Han <kkamagui@gmail.com>
|
||||
Date: Fri, 23 Jun 2017 14:19:48 +0900
|
||||
Subject: [PATCH] acpi: acpica: fix acpi parse and parseext cache leaks
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
I'm Seunghun Han, and I work for National Security Research Institute of
|
||||
South Korea.
|
||||
|
||||
I have been doing a research on ACPI and found an ACPI cache leak in ACPI
|
||||
early abort cases.
|
||||
|
||||
Boot log of ACPI cache leak is as follows:
|
||||
[ 0.352414] ACPI: Added _OSI(Module Device)
|
||||
[ 0.353182] ACPI: Added _OSI(Processor Device)
|
||||
[ 0.353182] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
[ 0.353182] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
[ 0.356028] ACPI: Unable to start the ACPI Interpreter
|
||||
[ 0.356799] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
|
||||
[ 0.360215] kmem_cache_destroy Acpi-State: Slab cache still has objects
|
||||
[ 0.360648] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W
|
||||
4.12.0-rc4-next-20170608+ #10
|
||||
[ 0.361273] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
|
||||
VirtualBox 12/01/2006
|
||||
[ 0.361873] Call Trace:
|
||||
[ 0.362243] ? dump_stack+0x5c/0x81
|
||||
[ 0.362591] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
[ 0.362944] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.363296] ? acpi_os_delete_cache+0xa/0x10
|
||||
[ 0.363646] ? acpi_ut_delete_caches+0x6d/0x7b
|
||||
[ 0.364000] ? acpi_terminate+0xa/0x14
|
||||
[ 0.364000] ? acpi_init+0x2af/0x34f
|
||||
[ 0.364000] ? __class_create+0x4c/0x80
|
||||
[ 0.364000] ? video_setup+0x7f/0x7f
|
||||
[ 0.364000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.364000] ? do_one_initcall+0x4e/0x1a0
|
||||
[ 0.364000] ? kernel_init_freeable+0x189/0x20a
|
||||
[ 0.364000] ? rest_init+0xc0/0xc0
|
||||
[ 0.364000] ? kernel_init+0xa/0x100
|
||||
[ 0.364000] ? ret_from_fork+0x25/0x30
|
||||
|
||||
I analyzed this memory leak in detail. I found that “Acpi-State” cache and
|
||||
“Acpi-Parse” cache were merged because the size of cache objects was same
|
||||
slab cache size.
|
||||
|
||||
I finally found “Acpi-Parse” cache and “Acpi-ParseExt” cache were leaked
|
||||
using SLAB_NEVER_MERGE flag in kmem_cache_create() function.
|
||||
|
||||
Real ACPI cache leak point is as follows:
|
||||
[ 0.360101] ACPI: Added _OSI(Module Device)
|
||||
[ 0.360101] ACPI: Added _OSI(Processor Device)
|
||||
[ 0.360101] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
[ 0.361043] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
[ 0.364016] ACPI: Unable to start the ACPI Interpreter
|
||||
[ 0.365061] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
|
||||
[ 0.368174] kmem_cache_destroy Acpi-Parse: Slab cache still has objects
|
||||
[ 0.369332] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
|
||||
4.12.0-rc4-next-20170608+ #8
|
||||
[ 0.371256] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
|
||||
VirtualBox 12/01/2006
|
||||
[ 0.372000] Call Trace:
|
||||
[ 0.372000] ? dump_stack+0x5c/0x81
|
||||
[ 0.372000] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
[ 0.372000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.372000] ? acpi_os_delete_cache+0xa/0x10
|
||||
[ 0.372000] ? acpi_ut_delete_caches+0x56/0x7b
|
||||
[ 0.372000] ? acpi_terminate+0xa/0x14
|
||||
[ 0.372000] ? acpi_init+0x2af/0x34f
|
||||
[ 0.372000] ? __class_create+0x4c/0x80
|
||||
[ 0.372000] ? video_setup+0x7f/0x7f
|
||||
[ 0.372000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.372000] ? do_one_initcall+0x4e/0x1a0
|
||||
[ 0.372000] ? kernel_init_freeable+0x189/0x20a
|
||||
[ 0.372000] ? rest_init+0xc0/0xc0
|
||||
[ 0.372000] ? kernel_init+0xa/0x100
|
||||
[ 0.372000] ? ret_from_fork+0x25/0x30
|
||||
[ 0.388039] kmem_cache_destroy Acpi-ParseExt: Slab cache still has objects
|
||||
[ 0.389063] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
|
||||
4.12.0-rc4-next-20170608+ #8
|
||||
[ 0.390557] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
|
||||
VirtualBox 12/01/2006
|
||||
[ 0.392000] Call Trace:
|
||||
[ 0.392000] ? dump_stack+0x5c/0x81
|
||||
[ 0.392000] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
[ 0.392000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.392000] ? acpi_os_delete_cache+0xa/0x10
|
||||
[ 0.392000] ? acpi_ut_delete_caches+0x6d/0x7b
|
||||
[ 0.392000] ? acpi_terminate+0xa/0x14
|
||||
[ 0.392000] ? acpi_init+0x2af/0x34f
|
||||
[ 0.392000] ? __class_create+0x4c/0x80
|
||||
[ 0.392000] ? video_setup+0x7f/0x7f
|
||||
[ 0.392000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.392000] ? do_one_initcall+0x4e/0x1a0
|
||||
[ 0.392000] ? kernel_init_freeable+0x189/0x20a
|
||||
[ 0.392000] ? rest_init+0xc0/0xc0
|
||||
[ 0.392000] ? kernel_init+0xa/0x100
|
||||
[ 0.392000] ? ret_from_fork+0x25/0x30
|
||||
|
||||
When early abort is occurred due to invalid ACPI information, Linux kernel
|
||||
terminates ACPI by calling acpi_terminate() function. The function calls
|
||||
acpi_ut_delete_caches() function to delete local caches (acpi_gbl_namespace_
|
||||
cache, state_cache, operand_cache, ps_node_cache, ps_node_ext_cache).
|
||||
|
||||
But the deletion codes in acpi_ut_delete_caches() function only delete
|
||||
slab caches using kmem_cache_destroy() function, therefore the cache
|
||||
objects should be flushed before acpi_ut_delete_caches() function.
|
||||
|
||||
“Acpi-Parse” cache and “Acpi-ParseExt” cache are used in an AML parse
|
||||
function, acpi_ps_parse_loop(). The function should have flush codes to
|
||||
handle an error state due to invalid AML codes.
|
||||
|
||||
This cache leak has a security threat because an old kernel (<= 4.9) shows
|
||||
memory locations of kernel functions in stack dump. Some malicious users
|
||||
could use this information to neutralize kernel ASLR.
|
||||
|
||||
To fix ACPI cache leak for enhancing security, I made a patch which has
|
||||
flush codes in acpi_ps_parse_loop() function.
|
||||
|
||||
I hope that this patch improves the security of Linux kernel.
|
||||
|
||||
Thank you.
|
||||
|
||||
Signed-off-by: Seunghun Han <kkamagui@gmail.com>
|
||||
|
||||
Github-Location: https://github.com/acpica/acpica/pull/278/commits/4a0243ecb4c94e2d73510d096c5ea4d0711fc6c0
|
||||
|
||||
---
|
||||
source/components/parser/psobject.c | 44 ++++++++++++++-----------------------
|
||||
1 file changed, 16 insertions(+), 28 deletions(-)
|
||||
|
||||
Index: acpica-unix-20191018/source/components/parser/psobject.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/parser/psobject.c
|
||||
+++ acpica-unix-20191018/source/components/parser/psobject.c
|
||||
@@ -707,7 +707,8 @@ AcpiPsCompleteFinalOp (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_STATUS Status)
|
||||
{
|
||||
- ACPI_STATUS Status2;
|
||||
+ ACPI_STATUS ReturnStatus = AE_OK;
|
||||
+ BOOLEAN Ascending = TRUE;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR (PsCompleteFinalOp, WalkState);
|
||||
@@ -724,7 +725,7 @@ AcpiPsCompleteFinalOp (
|
||||
{
|
||||
if (Op)
|
||||
{
|
||||
- if (WalkState->AscendingCallback != NULL)
|
||||
+ if (Ascending && WalkState->AscendingCallback != NULL)
|
||||
{
|
||||
WalkState->Op = Op;
|
||||
WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
|
||||
@@ -743,41 +744,28 @@ AcpiPsCompleteFinalOp (
|
||||
|
||||
if (Status == AE_CTRL_TERMINATE)
|
||||
{
|
||||
- Status = AE_OK;
|
||||
-
|
||||
- /* Clean up */
|
||||
- do
|
||||
- {
|
||||
- if (Op)
|
||||
- {
|
||||
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
|
||||
- if (ACPI_FAILURE (Status2))
|
||||
- {
|
||||
- return_ACPI_STATUS (Status2);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- AcpiPsPopScope (&(WalkState->ParserState), &Op,
|
||||
- &WalkState->ArgTypes, &WalkState->ArgCount);
|
||||
-
|
||||
- } while (Op);
|
||||
-
|
||||
- return_ACPI_STATUS (Status);
|
||||
+ Ascending = FALSE;
|
||||
+ ReturnStatus = AE_CTRL_TERMINATE;
|
||||
}
|
||||
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* First error is most important */
|
||||
|
||||
- (void) AcpiPsCompleteThisOp (WalkState, Op);
|
||||
- return_ACPI_STATUS (Status);
|
||||
+ Ascending = FALSE;
|
||||
+ ReturnStatus = Status;
|
||||
}
|
||||
}
|
||||
|
||||
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
|
||||
- if (ACPI_FAILURE (Status2))
|
||||
+ Status = AcpiPsCompleteThisOp (WalkState, Op);
|
||||
+ if (ACPI_FAILURE (Status))
|
||||
{
|
||||
- return_ACPI_STATUS (Status2);
|
||||
+ Ascending = FALSE;
|
||||
+ if (ACPI_SUCCESS (ReturnStatus) ||
|
||||
+ ReturnStatus == AE_CTRL_TERMINATE)
|
||||
+ {
|
||||
+ ReturnStatus = Status;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -786,5 +774,5 @@ AcpiPsCompleteFinalOp (
|
||||
|
||||
} while (Op);
|
||||
|
||||
- return_ACPI_STATUS (Status);
|
||||
+ return_ACPI_STATUS (ReturnStatus);
|
||||
}
|
||||
|
|
@ -67,10 +67,10 @@ Github-Location: https://github.com/acpica/acpica/pull/296/commits/37f2c716f2c6a
|
|||
source/components/namespace/nseval.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
Index: acpica-unix-20191018/source/components/namespace/nseval.c
|
||||
Index: acpica-unix2-20240321/source/components/namespace/nseval.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/namespace/nseval.c
|
||||
+++ acpica-unix-20191018/source/components/namespace/nseval.c
|
||||
--- acpica-unix2-20240321.orig/source/components/namespace/nseval.c
|
||||
+++ acpica-unix2-20240321/source/components/namespace/nseval.c
|
||||
@@ -329,6 +329,16 @@ AcpiNsEvaluate (
|
||||
Info->ReturnObject = NULL;
|
||||
}
|
||||
|
|
|
|||
25
dangling-ptr.patch
Normal file
25
dangling-ptr.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
Index: acpica-unix2-20240321/source/components/utilities/utdebug.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20240321.orig/source/components/utilities/utdebug.c
|
||||
+++ acpica-unix2-20240321/source/components/utilities/utdebug.c
|
||||
@@ -58,6 +58,10 @@ static const char *AcpiGbl_Fun
|
||||
static const char *AcpiGbl_FunctionExitPrefix = "----Exit-";
|
||||
|
||||
|
||||
+#if defined(__GNUC__) && (__GNUC__ > 11)
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdangling-pointer"
|
||||
+#endif
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtInitStackPtrTrace
|
||||
@@ -120,6 +124,9 @@ AcpiUtTrackStackPtr (
|
||||
AcpiGbl_DeepestNesting = AcpiGbl_NestingLevel;
|
||||
}
|
||||
}
|
||||
+#if defined(__GNUC__) && (__GNUC__ > 11)
|
||||
+#pragma GCC diagnostic pop
|
||||
+#endif
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
13
dbtest.patch
13
dbtest.patch
|
|
@ -4,10 +4,11 @@ into an ACPI_OBJECT instead of just the pointer (see the use in the call
|
|||
to memcpy()). So, move the init so GCC recognizes that ValueToWrite is
|
||||
only a pointer, and not a whole string that needs to be moved.
|
||||
|
||||
diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica-unix2-20200214/source/components/debugger/dbtest.c
|
||||
--- acpica-unix2-20200214.orig/source/components/debugger/dbtest.c 2020-02-14 10:33:54.000000000 -0700
|
||||
+++ acpica-unix2-20200214/source/components/debugger/dbtest.c 2020-02-25 10:50:42.793372070 -0700
|
||||
@@ -719,9 +719,10 @@
|
||||
Index: acpica-unix2-20240321/source/components/debugger/dbtest.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20240321.orig/source/components/debugger/dbtest.c
|
||||
+++ acpica-unix2-20240321/source/components/debugger/dbtest.c
|
||||
@@ -719,9 +719,10 @@ AcpiDbTestStringType (
|
||||
ACPI_OBJECT *Temp1 = NULL;
|
||||
ACPI_OBJECT *Temp2 = NULL;
|
||||
ACPI_OBJECT *Temp3 = NULL;
|
||||
|
|
@ -19,7 +20,7 @@ diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica
|
|||
|
||||
|
||||
/* Read the original value */
|
||||
@@ -737,6 +738,9 @@
|
||||
@@ -737,6 +738,9 @@ AcpiDbTestStringType (
|
||||
|
||||
/* Write a new value */
|
||||
|
||||
|
|
@ -29,7 +30,7 @@ diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica
|
|||
WriteValue.Type = ACPI_TYPE_STRING;
|
||||
WriteValue.String.Length = strlen (ValueToWrite);
|
||||
WriteValue.String.Pointer = ValueToWrite;
|
||||
@@ -790,6 +794,7 @@
|
||||
@@ -790,6 +794,7 @@ Exit:
|
||||
if (Temp1) {AcpiOsFree (Temp1);}
|
||||
if (Temp2) {AcpiOsFree (Temp2);}
|
||||
if (Temp3) {AcpiOsFree (Temp3);}
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
diff -Naur acpica-unix2-20191213.orig/source/tools/acpiexec/aemain.c acpica-unix2-20191213/source/tools/acpiexec/aemain.c
|
||||
--- acpica-unix2-20191213.orig/source/tools/acpiexec/aemain.c 2020-02-23 16:32:25.935853162 -0700
|
||||
+++ acpica-unix2-20191213/source/tools/acpiexec/aemain.c 2020-02-23 16:44:38.949901103 -0700
|
||||
@@ -84,7 +84,6 @@
|
||||
UINT8 AcpiGbl_RegionFillValue = 0;
|
||||
BOOLEAN AcpiGbl_IgnoreErrors = FALSE;
|
||||
BOOLEAN AcpiGbl_AbortLoopOnTimeout = FALSE;
|
||||
-BOOLEAN AcpiGbl_DbOpt_NoRegionSupport = FALSE;
|
||||
UINT8 AcpiGbl_UseHwReducedFadt = FALSE;
|
||||
BOOLEAN AcpiGbl_DoInterfaceTests = FALSE;
|
||||
BOOLEAN AcpiGbl_LoadTestTables = FALSE;
|
||||
@@ -549,6 +548,10 @@
|
||||
goto NormalExit;
|
||||
}
|
||||
|
||||
+ /* Initialize globals modified by command line options */
|
||||
+
|
||||
+ AcpiGbl_DbOpt_NoRegionSupport = FALSE;
|
||||
+
|
||||
/* Get the command line options */
|
||||
|
||||
ExitCode = AeDoOptions (argc, argv);
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
Introduce build hardening flags for f23
|
||||
|
||||
From: Al Stone <ahs3@redhat.com>
|
||||
|
||||
|
||||
---
|
||||
generate/unix/Makefile.config | 2 ++
|
||||
generate/unix/iasl/Makefile | 13 +++++++------
|
||||
2 files changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: acpica-unix-20200214/generate/unix/Makefile.config
|
||||
===================================================================
|
||||
--- acpica-unix-20200214.orig/generate/unix/Makefile.config
|
||||
+++ acpica-unix-20200214/generate/unix/Makefile.config
|
||||
@@ -190,6 +190,8 @@ ifneq ($(NOFORTIFY),TRUE)
|
||||
OPT_CFLAGS += -D_FORTIFY_SOURCE=2
|
||||
endif
|
||||
|
||||
+OPT_CFLAGS += -fPIC -pie
|
||||
+
|
||||
CFLAGS += \
|
||||
-D$(ACPI_HOST)\
|
||||
-D_GNU_SOURCE\
|
||||
Index: acpica-unix-20200214/generate/unix/iasl/Makefile
|
||||
===================================================================
|
||||
--- acpica-unix-20200214.orig/generate/unix/iasl/Makefile
|
||||
+++ acpica-unix-20200214/generate/unix/iasl/Makefile
|
||||
@@ -358,34 +358,35 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prpa
|
||||
# Cannot use the common compile warning flags since the C files are created
|
||||
# by the utilities above and they are not necessarily ANSI C, etc.
|
||||
#
|
||||
+HARDENING_FLAGS = -fPIC -pie
|
||||
$(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/dtcompilerparserlex.o : $(OBJDIR)/dtcompilerparserlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/dtcompilerparserparse.o : $(OBJDIR)/dtcompilerparserparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
31
facp.patch
31
facp.patch
|
|
@ -1,31 +0,0 @@
|
|||
From 7670c56ebe004e698551635f9c5d48a1794066dd Mon Sep 17 00:00:00 2001
|
||||
From: Al Stone <ahs3@ahs3.net>
|
||||
Date: Wed, 19 Dec 2018 16:52:41 -0700
|
||||
Subject: [PATCH] Correct DSDT Address field in FACP tables
|
||||
|
||||
The FADT allows either the DSDT Address or XDSDT Address field to be
|
||||
zero. However, the table definition used by the table compiler still
|
||||
requires the DSDT Address to be non-zero, which is not correct. So,
|
||||
remove the DT_NON_ZERO flag from the field.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@redhat.com>
|
||||
---
|
||||
source/common/dmtbinfo.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c
|
||||
index 2e1c54f84..07d3ce099 100644
|
||||
--- a/source/common/dmtbinfo.c
|
||||
+++ b/source/common/dmtbinfo.c
|
||||
@@ -292,7 +292,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[] =
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
|
||||
{
|
||||
{ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Facs), "FACS Address", 0},
|
||||
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address", DT_NON_ZERO},
|
||||
+ {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Model), "Model", 0},
|
||||
{ACPI_DMT_FADTPM, ACPI_FADT_OFFSET (PreferredProfile), "PM Profile", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_FADT_OFFSET (SciInterrupt), "SCI Interrupt", 0},
|
||||
--
|
||||
2.20.1
|
||||
|
||||
65
gcc9.patch
65
gcc9.patch
|
|
@ -1,65 +0,0 @@
|
|||
diff -Naur acpica-unix2-20190108/source/common/dmrestag.c acpica-unix2-20190108-patch/source/common/dmrestag.c
|
||||
--- acpica-unix2-20190108/source/common/dmrestag.c 2019-01-08 14:10:31.000000000 -0700
|
||||
+++ acpica-unix2-20190108-patch/source/common/dmrestag.c 2019-05-10 13:57:10.768398838 -0600
|
||||
@@ -710,10 +710,25 @@
|
||||
* end up in the final compiled AML, it's just an appearance issue for the
|
||||
* disassembled code.
|
||||
*/
|
||||
- Pathname[strlen (Pathname) - ACPI_NAME_SIZE] = 0;
|
||||
- strncat (Pathname, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
|
||||
- strcat (Pathname, ".");
|
||||
- strncat (Pathname, Tag, ACPI_NAME_SIZE);
|
||||
+ {
|
||||
+ /*
|
||||
+ * GCC9 forces some contortions when non-null-terminated char
|
||||
+ * strings are being used; using strncat() might be simpler,
|
||||
+ * but the assumption that the string is null-terminated gets
|
||||
+ * checked and AML does not always guarantee that is true.
|
||||
+ */
|
||||
+ char *tmp;
|
||||
+ unsigned char dot = '.';
|
||||
+
|
||||
+ Pathname[strlen (Pathname) - ACPI_NAME_SIZE] = 0;
|
||||
+ tmp = Pathname + strlen(Pathname);
|
||||
+ memcpy (tmp, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
|
||||
+ tmp += ACPI_NAME_SIZE;
|
||||
+ memcpy (tmp, &dot, 1);
|
||||
+ tmp++;
|
||||
+ memcpy (tmp, Tag, ACPI_NAME_SIZE);
|
||||
+ tmp += ACPI_NAME_SIZE;
|
||||
+ }
|
||||
|
||||
/* Internalize the namepath to AML format */
|
||||
|
||||
diff -Naur acpica-unix2-20190108/source/compiler/aslcodegen.c acpica-unix2-20190108-patch/source/compiler/aslcodegen.c
|
||||
--- acpica-unix2-20190108/source/compiler/aslcodegen.c 2019-05-10 13:40:12.827411487 -0600
|
||||
+++ acpica-unix2-20190108-patch/source/compiler/aslcodegen.c 2019-05-10 13:25:34.667850614 -0600
|
||||
@@ -450,11 +450,11 @@
|
||||
*/
|
||||
if (AcpiGbl_CaptureComments)
|
||||
{
|
||||
- strncpy(AcpiGbl_TableSig, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||
+ memcpy(AcpiGbl_TableSig, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||
Child->Asl.Value.String = ACPI_SIG_XXXX;
|
||||
}
|
||||
|
||||
- strncpy (AslGbl_TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||
+ memcpy (AslGbl_TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||
|
||||
/* Revision */
|
||||
|
||||
@@ -471,12 +471,12 @@
|
||||
/* OEMID */
|
||||
|
||||
Child = Child->Asl.Next;
|
||||
- strncpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
|
||||
+ memcpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
|
||||
|
||||
/* OEM TableID */
|
||||
|
||||
Child = Child->Asl.Next;
|
||||
- strncpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
|
||||
+ memcpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
|
||||
|
||||
/* OEM Revision */
|
||||
|
||||
|
|
@ -1,23 +1,47 @@
|
|||
grammar.asl 522: NAME (ESC1, "abcdefg\x00hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
grammar.asl 523: NAME (ESC2, "abcdefg\000hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
grammar.asl 552: IRQNoFlags(xxxt){3,4,10,11}
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (XXXT)
|
||||
|
||||
grammar.asl 566: Name(Bxxx,0xFFFFFFFF)
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (BXXX)
|
||||
|
||||
grammar.asl 6478: Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
|
||||
Warning 3046 - Invalid or unknown escape sequence ^
|
||||
|
||||
grammar.asl 120: Device (A1)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 135: Device (A2)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 145: Device (A3)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 155: Device (A4)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 171: Device (IRES)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 171: Device (IRES)
|
||||
Warning 3141 - ^ Missing dependency (Device has a _SRS, missing a _PRS, required)
|
||||
|
||||
grammar.asl 171: Device (IRES)
|
||||
Remark 2141 - ^ Missing dependency (Device has a _SRS, no corresponding _DIS)
|
||||
|
||||
grammar.asl 199: Name (_NPK, Package ()
|
||||
Warning 3133 - ^ Unknown reserved name (_NPK)
|
||||
|
||||
grammar.asl 208: Device (RES)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 208: Device (RES)
|
||||
Remark 2141 - ^ Missing dependency (Device has a _SRS, no corresponding _DIS)
|
||||
|
||||
grammar.asl 247: Name (PRT0, ResourceTemplate ()
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RES._CRS)
|
||||
|
|
@ -40,6 +64,12 @@ Warning 3055 - ^ Invalid Hex/Octal Escape - Non-
|
|||
grammar.asl 523: NAME (ESC2, "abcdefg\000hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
grammar.asl 552: IRQNoFlags(xxxt){3,4,10,11}
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (XXXT)
|
||||
|
||||
grammar.asl 566: Name(Bxxx,0xFFFFFFFF)
|
||||
Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (BXXX)
|
||||
|
||||
grammar.asl 620: RCIV (Subtract (Arg0, 1))
|
||||
Remark 2098 - ^ Recursive method call (RCIV)
|
||||
|
||||
|
|
@ -76,6 +106,12 @@ Remark 2089 - Object is not referenced ^ (Name [FL
|
|||
grammar.asl 705: Device(PCI0)
|
||||
Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both)
|
||||
|
||||
grammar.asl 705: Device(PCI0)
|
||||
Warning 3141 - Missing dependency ^ (Device has a _SRS, missing a _PRS, required)
|
||||
|
||||
grammar.asl 705: Device(PCI0)
|
||||
Remark 2141 - Missing dependency ^ (Device has a _SRS, no corresponding _DIS)
|
||||
|
||||
grammar.asl 712: Name(PRT0, ResourceTemplate() {
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0._CRS)
|
||||
|
||||
|
|
@ -83,13 +119,13 @@ grammar.asl 733: Method(_SRS)
|
|||
Warning 3102 - ^ Reserved method has too few arguments (_SRS requires 1)
|
||||
|
||||
grammar.asl 738: Device(EIO)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 822: If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
||||
grammar.asl 913: Device (DEV1)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 963: Divide (Local0, Local1, Local3)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
|
@ -133,21 +169,12 @@ Warning 3038 - ^ Truncating 64-bit constant
|
|||
grammar.asl 1396: if (LNotEqual (Local0, 0x1234567887654321))
|
||||
Warning 3038 - Truncating 64-bit constant found in 32-bit table ^
|
||||
|
||||
grammar.asl 1411: Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\FLDX)
|
||||
|
||||
grammar.asl 1418: Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\FLDX)
|
||||
|
||||
grammar.asl 1445: Name (BUFO, Buffer (32) {})
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||
|
||||
grammar.asl 1448: OperationRegion (OPR2, SystemMemory, Arg0, 256)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||
|
||||
grammar.asl 1451: Field (OPR2, ByteAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||
|
||||
grammar.asl 1462: BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||
|
||||
|
|
@ -203,16 +230,16 @@ grammar.asl 1930: Store (RefOf (MAIN), Local5)
|
|||
Warning 3144 - Method Local is set but never used ^ (Local5)
|
||||
|
||||
grammar.asl 2005: Device (IFEL)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2162: Device (NOSV)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2168: Name (WRD, 0x1234)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\NOSV.TEST)
|
||||
|
||||
grammar.asl 2583: Device (IDXF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2611: Store (IFE0, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
|
@ -224,10 +251,10 @@ grammar.asl 2613: Store (IFE2, Local2)
|
|||
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||
|
||||
grammar.asl 2630: Device (NSTL)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2658: Device (RTBF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2667: Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RTBF.RBUF)
|
||||
|
|
@ -236,19 +263,19 @@ grammar.asl 2695: Name (BUFR, Buffer(Local1) {})
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RTBF.RBUF)
|
||||
|
||||
grammar.asl 2756: Device (GPE2)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2771: Device (PRW2)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2819: Device (PRW1)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2886: Store (Arg0, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 2889: Device (RTLV)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 2989: Device (PCI1)
|
||||
Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both)
|
||||
|
|
@ -257,22 +284,22 @@ grammar.asl 2993: Name (_CRS,0)
|
|||
Error 6105 - ^ Invalid object type for reserved name (_CRS: found Integer, Buffer required)
|
||||
|
||||
grammar.asl 3017: Device (RETP)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3053: Device (WHLR)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3109: Device (ANDO)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3343: Name(RSLT,1)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ANDO.TEST)
|
||||
|
||||
grammar.asl 3383: Device (BRKP)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3420: Device (ADSU)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3435: Name (DWRD, 0x12345678)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ADSU.TEST)
|
||||
|
|
@ -284,7 +311,7 @@ grammar.asl 3437: Name (BYT, 0x12)
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ADSU.TEST)
|
||||
|
||||
grammar.asl 3513: Device (INDC)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3528: Name (DWRD, 0x12345678)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\INDC.TEST)
|
||||
|
|
@ -296,13 +323,13 @@ grammar.asl 3530: Name (BYT, 0x12)
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\INDC.TEST)
|
||||
|
||||
grammar.asl 3611: Device (LOPS)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 3956: Device (FDSO)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 4120: Device (MLDV)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 4135: Name (RMDR, 0)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MLDV.TEST)
|
||||
|
|
@ -317,13 +344,13 @@ grammar.asl 4138: Name (BYT, 0x12)
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MLDV.TEST)
|
||||
|
||||
grammar.asl 4253: Device (NBIT)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 4489: Device (SHFT)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 4685: Device (XORD)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 4693: OperationRegion (RAM, SystemMemory, 0x800000, 256)
|
||||
Warning 3175 - ^ Static OperationRegion should be declared outside control method
|
||||
|
|
@ -331,41 +358,29 @@ Warning 3175 - ^ Static OperationRegion shoul
|
|||
grammar.asl 4693: OperationRegion (RAM, SystemMemory, 0x800000, 256)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\XORD.TEST)
|
||||
|
||||
grammar.asl 4694: Field (RAM, ByteAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\XORD.TEST)
|
||||
|
||||
grammar.asl 5022: Device (CRBF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 5100: Device (IDX4)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 5117: OperationRegion (RAM, SystemMemory, Arg0, 0x100)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
|
||||
|
||||
grammar.asl 5118: Field (RAM, DwordAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
|
||||
|
||||
grammar.asl 5123: Field (RAM, ByteAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
|
||||
|
||||
grammar.asl 5159: Field (RAM, ByteAcc, NoLock, Preserve)
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
|
||||
|
||||
grammar.asl 5639: Device (EVNT)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 5867: Device (SZLV)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 5960: Device (BYTF)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 5970: Device (C005)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 5972: Device (C013)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6027: Name (_HID, "*PNP0A06")
|
||||
Error 6061 - Invalid leading asterisk ^ (*PNP0A06)
|
||||
|
|
@ -374,13 +389,13 @@ grammar.asl 6166: Name (C18C, Package (2)
|
|||
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||
|
||||
grammar.asl 6190: Device (C19B)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6199: Divide (Local1, 10, Local0, Local2) // Local0 = Local1 / 10
|
||||
Warning 3144 - Method Local is set but never used ^ (Local0)
|
||||
|
||||
grammar.asl 6244: Device (DWDF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6276: Method (MKW_, 2)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||
|
|
@ -389,13 +404,13 @@ grammar.asl 6276: Method (MKW_, 2)
|
|||
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||
|
||||
grammar.asl 6285: Device (DVAX)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6328: Device (IDX6)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6352: Device (TST_)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6371: Store (IFE0, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
|
@ -419,7 +434,7 @@ grammar.asl 6380: Store (\IDX6.TST_.IFE1, Local6)
|
|||
Warning 3144 - Method Local is set but never used ^ (Local6)
|
||||
|
||||
grammar.asl 6393: Device (IDX5)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6416: Name (BUF0, Buffer (Local0) {})
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX5.MCTH)
|
||||
|
|
@ -446,7 +461,7 @@ grammar.asl 6625: Name (BUFR, Buffer(16)
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX0.TEST)
|
||||
|
||||
grammar.asl 6709: Device (BITI)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6817: And (Local0, 1, Local0) // Local0 &= 1
|
||||
Error 6066 - ^ Method local variable is not initialized (Local0)
|
||||
|
|
@ -458,7 +473,7 @@ grammar.asl 6903: Name (_HID, "*PNP0C0A") // Control Method B
|
|||
Error 6061 - Invalid leading asterisk ^ (*PNP0C0A)
|
||||
|
||||
grammar.asl 6912: Device (IDX3)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 6922: Name (BUFR, Buffer () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX3.LCLB)
|
||||
|
|
@ -467,7 +482,7 @@ grammar.asl 6974: Name (PKG, Package () {0, 1, 2, 3, 4, 5, 6
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX3.LCLP)
|
||||
|
||||
grammar.asl 7057: Device(IDX7)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 7074: Name (DEST, Buffer () // 62 characters plus NULL
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TST1)
|
||||
|
|
@ -506,7 +521,7 @@ grammar.asl 7556: Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwx
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTL)
|
||||
|
||||
grammar.asl 7736: Device (MTCH)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 7743: Name (TIM0, Package ()
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MTCH.TEST)
|
||||
|
|
@ -527,13 +542,13 @@ grammar.asl 7760: CreateDWordField (TMD0, 16, CHNF)
|
|||
Remark 2089 - Object is not referenced ^ (Name [CHNF] is within a method [TEST])
|
||||
|
||||
grammar.asl 7934: Device (WHLB)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 8275: Name (BUFR, Package (13) {})
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.BAT1._BIF)
|
||||
|
||||
grammar.asl 8295: Device (IDX2)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 8300: Name (SRCB, Buffer () {"Short Buffer"}) // 12 characters plus NULL
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX2.B2IB)
|
||||
|
|
@ -545,7 +560,7 @@ grammar.asl 8493: Name (DEST, Package (2) {})
|
|||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX2.FB2P)
|
||||
|
||||
grammar.asl 8678: Device (SIZO)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - ^ Missing dependency (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 8708: Name (BUFR, Buffer (12) {}) // uninitialized Buffer
|
||||
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SARG)
|
||||
|
|
@ -578,28 +593,28 @@ grammar.asl 9132: Store (_OS, Local0)
|
|||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 9262: Device (MBIT)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 9273: Device (MWRD)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 9281: Device (MBYT)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 9354: Device (SMIS)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
grammar.asl 9408: Device(CNDT)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
Error 6141 - Missing dependency ^ (Device object requires a _HID or _ADR)
|
||||
|
||||
|
||||
Intel ACPI Component Architecture
|
||||
ASL+ Optimizing Compiler/Disassembler version VVVVVVVV
|
||||
Copyright (c) 2000 - 2020 Intel Corporation
|
||||
Copyright (c) 2000 - 2023 Intel Corporation
|
||||
|
||||
Ignoring all errors, forcing AML file generation
|
||||
|
||||
ASL Input: grammar.asl - 323653 bytes 4818 keywords 10284 source lines
|
||||
ASL Input: grammar.asl - 323653 bytes 4818 keywords 0 source lines
|
||||
AML Output: grammar.aml - 43758 bytes 4148 opcodes 670 named objects
|
||||
|
||||
Compilation successful. 6 Errors, 93 Warnings, 99 Remarks, 1106 Optimizations
|
||||
Compilation successful. 60 Errors, 41 Warnings, 97 Remarks, 1106 Optimizations
|
||||
|
|
|
|||
283
int-format.patch
283
int-format.patch
|
|
@ -1,283 +0,0 @@
|
|||
Use proper integer formatting
|
||||
|
||||
From: Al Stone <ahs3@redhat.com>
|
||||
|
||||
|
||||
---
|
||||
source/compiler/aslerror.c | 4 ++--
|
||||
source/compiler/aslopt.c | 2 +-
|
||||
source/compiler/aslprepkg.c | 2 +-
|
||||
source/components/debugger/dbexec.c | 2 +-
|
||||
source/components/dispatcher/dsmthdat.c | 4 ++--
|
||||
source/components/dispatcher/dsutils.c | 2 +-
|
||||
source/components/dispatcher/dswscope.c | 4 ++--
|
||||
source/components/events/evgpe.c | 4 ++--
|
||||
source/components/executer/exdump.c | 2 +-
|
||||
source/components/executer/exfldio.c | 4 ++--
|
||||
source/components/executer/exnames.c | 4 ++--
|
||||
source/components/hardware/hwregs.c | 2 +-
|
||||
source/components/tables/tbfadt.c | 6 +++---
|
||||
source/components/tables/tbxfroot.c | 6 +++---
|
||||
source/components/utilities/utownerid.c | 2 +-
|
||||
18 files changed, 28 insertions(+), 28 deletions(-)
|
||||
|
||||
Index: acpica-unix-20191018/source/compiler/aslerror.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/aslerror.c
|
||||
+++ acpica-unix-20191018/source/compiler/aslerror.c
|
||||
@@ -898,7 +898,7 @@ AslLogNewError (
|
||||
AslGbl_ExceptionCount[ModifiedLevel]++;
|
||||
if (!AslGbl_IgnoreErrors && AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
|
||||
{
|
||||
- printf ("\nMaximum error count (%u) exceeded\n", ASL_MAX_ERROR_COUNT);
|
||||
+ printf ("\nMaximum error count (%d) exceeded\n", ASL_MAX_ERROR_COUNT);
|
||||
|
||||
AslGbl_SourceLine = 0;
|
||||
AslGbl_NextError = AslGbl_ErrorLog;
|
||||
Index: acpica-unix-20191018/source/compiler/aslopt.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/aslopt.c
|
||||
+++ acpica-unix-20191018/source/compiler/aslopt.c
|
||||
@@ -583,7 +583,7 @@ OptOptimizeNamePath (
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
|
||||
- "PATH OPTIMIZE: Line %5d ParentOp [%12.12s] ThisOp [%12.12s] ",
|
||||
+ "PATH OPTIMIZE: Line %5u ParentOp [%12.12s] ThisOp [%12.12s] ",
|
||||
Op->Asl.LogicalLineNumber,
|
||||
AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode),
|
||||
AcpiPsGetOpcodeName (Op->Common.AmlOpcode)));
|
||||
Index: acpica-unix-20191018/source/compiler/aslprepkg.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/aslprepkg.c
|
||||
+++ acpica-unix-20191018/source/compiler/aslprepkg.c
|
||||
@@ -309,7 +309,7 @@ ApCheckPackage (
|
||||
|
||||
if (Count & 1)
|
||||
{
|
||||
- sprintf (AslGbl_MsgBuffer, "%4.4s: Package length, %d, must be even.",
|
||||
+ sprintf (AslGbl_MsgBuffer, "%4.4s: Package length, %u, must be even.",
|
||||
Predefined->Info.Name, Count);
|
||||
|
||||
AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH,
|
||||
Index: acpica-unix-20191018/source/components/debugger/dbexec.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/debugger/dbexec.c
|
||||
+++ acpica-unix-20191018/source/components/debugger/dbexec.c
|
||||
@@ -230,7 +230,7 @@ AcpiDbExecuteMethod (
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Possible buffer overflow within AML Debugger "
|
||||
"buffer (size 0x%X needed 0x%X)",
|
||||
- ACPI_DEBUG_BUFFER_SIZE, (UINT32) ReturnObj->Length));
|
||||
+ (UINT32) ACPI_DEBUG_BUFFER_SIZE, (UINT32) ReturnObj->Length));
|
||||
}
|
||||
}
|
||||
|
||||
Index: acpica-unix-20191018/source/components/dispatcher/dsmthdat.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/dispatcher/dsmthdat.c
|
||||
+++ acpica-unix-20191018/source/components/dispatcher/dsmthdat.c
|
||||
@@ -291,7 +291,7 @@ AcpiDsMethodDataGetNode (
|
||||
if (Index > ACPI_METHOD_MAX_LOCAL)
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "Local index %u is invalid (max %u)",
|
||||
+ "Local index %u is invalid (max %d)",
|
||||
Index, ACPI_METHOD_MAX_LOCAL));
|
||||
return_ACPI_STATUS (AE_AML_INVALID_INDEX);
|
||||
}
|
||||
@@ -306,7 +306,7 @@ AcpiDsMethodDataGetNode (
|
||||
if (Index > ACPI_METHOD_MAX_ARG)
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "Arg index %u is invalid (max %u)",
|
||||
+ "Arg index %u is invalid (max %d)",
|
||||
Index, ACPI_METHOD_MAX_ARG));
|
||||
return_ACPI_STATUS (AE_AML_INVALID_INDEX);
|
||||
}
|
||||
Index: acpica-unix-20191018/source/components/dispatcher/dsutils.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/dispatcher/dsutils.c
|
||||
+++ acpica-unix-20191018/source/components/dispatcher/dsutils.c
|
||||
@@ -786,7 +786,7 @@ AcpiDsCreateOperands (
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
|
||||
- "NumOperands %d, ArgCount %d, Index %d\n",
|
||||
+ "NumOperands %d, ArgCount %u, Index %u\n",
|
||||
WalkState->NumOperands, ArgCount, Index));
|
||||
|
||||
/* Create the interpreter arguments, in reverse order */
|
||||
Index: acpica-unix-20191018/source/components/dispatcher/dswscope.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/dispatcher/dswscope.c
|
||||
+++ acpica-unix-20191018/source/components/dispatcher/dswscope.c
|
||||
@@ -149,7 +149,7 @@ AcpiDsScopeStackPush (
|
||||
WalkState->ScopeDepth++;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
- "[%.2d] Pushed scope ", (UINT32) WalkState->ScopeDepth));
|
||||
+ "[%.2d] Pushed scope ", WalkState->ScopeDepth));
|
||||
|
||||
OldScopeInfo = WalkState->ScopeInfo;
|
||||
if (OldScopeInfo)
|
||||
@@ -211,7 +211,7 @@ AcpiDsScopeStackPop (
|
||||
WalkState->ScopeDepth--;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
- "[%.2d] Popped scope [%4.4s] (%s), New scope -> ",
|
||||
+ "[%.2u] Popped scope [%4.4s] (%s), New scope -> ",
|
||||
(UINT32) WalkState->ScopeDepth,
|
||||
AcpiUtGetNodeName (ScopeInfo->Scope.Node),
|
||||
AcpiUtGetTypeName (ScopeInfo->Common.Value)));
|
||||
Index: acpica-unix-20191018/source/components/events/evgpe.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/events/evgpe.c
|
||||
+++ acpica-unix-20191018/source/components/events/evgpe.c
|
||||
@@ -488,7 +488,7 @@ AcpiEvGpeDetect (
|
||||
"Ignore disabled registers for GPE %02X-%02X: "
|
||||
"RunEnable=%02X, WakeEnable=%02X\n",
|
||||
GpeRegisterInfo->BaseGpeNumber,
|
||||
- GpeRegisterInfo->BaseGpeNumber + (ACPI_GPE_REGISTER_WIDTH - 1),
|
||||
+ (unsigned int) (GpeRegisterInfo->BaseGpeNumber + (ACPI_GPE_REGISTER_WIDTH - 1)),
|
||||
GpeRegisterInfo->EnableForRun,
|
||||
GpeRegisterInfo->EnableForWake));
|
||||
continue;
|
||||
Index: acpica-unix-20191018/source/components/executer/exdump.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/executer/exdump.c
|
||||
+++ acpica-unix-20191018/source/components/executer/exdump.c
|
||||
@@ -678,7 +678,7 @@ AcpiExDumpOperand (
|
||||
if (Depth > 0)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%*s[%u] %p Refs=%u ",
|
||||
- Depth, " ", Depth, ObjDesc, ObjDesc->Common.ReferenceCount));
|
||||
+ (int) Depth, " ", Depth, ObjDesc, ObjDesc->Common.ReferenceCount));
|
||||
}
|
||||
else
|
||||
{
|
||||
Index: acpica-unix-20191018/source/components/executer/exfldio.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/executer/exfldio.c
|
||||
+++ acpica-unix-20191018/source/components/executer/exfldio.c
|
||||
@@ -681,8 +681,8 @@ AcpiExWriteWithUpdateRule (
|
||||
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Unknown UpdateRule value: 0x%X",
|
||||
- (ObjDesc->CommonField.FieldFlags &
|
||||
- AML_FIELD_UPDATE_RULE_MASK)));
|
||||
+ (unsigned int) (ObjDesc->CommonField.FieldFlags &
|
||||
+ AML_FIELD_UPDATE_RULE_MASK)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
|
||||
}
|
||||
}
|
||||
Index: acpica-unix-20191018/source/components/executer/exnames.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/executer/exnames.c
|
||||
+++ acpica-unix-20191018/source/components/executer/exnames.c
|
||||
@@ -237,7 +237,7 @@ AcpiExNameSegment (
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Leading character is not alpha: %02Xh (not a name)\n",
|
||||
- CharBuf[0]));
|
||||
+ (unsigned int) CharBuf[0]));
|
||||
Status = AE_CTRL_PENDING;
|
||||
}
|
||||
else
|
||||
@@ -249,7 +249,7 @@ AcpiExNameSegment (
|
||||
Status = AE_AML_BAD_NAME;
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Bad character 0x%02x in name, at %p",
|
||||
- *AmlAddress, AmlAddress));
|
||||
+ (unsigned int) (*AmlAddress), AmlAddress));
|
||||
}
|
||||
|
||||
*InAmlAddress = ACPI_CAST_PTR (UINT8, AmlAddress);
|
||||
Index: acpica-unix-20191018/source/components/hardware/hwregs.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/hardware/hwregs.c
|
||||
+++ acpica-unix-20191018/source/components/hardware/hwregs.c
|
||||
@@ -460,7 +460,7 @@ AcpiHwClearAcpiStatus (
|
||||
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %04X to %8.8X%8.8X\n",
|
||||
- ACPI_BITMASK_ALL_FIXED_STATUS,
|
||||
+ (UINT32) ACPI_BITMASK_ALL_FIXED_STATUS,
|
||||
ACPI_FORMAT_UINT64 (AcpiGbl_XPm1aStatus.Address)));
|
||||
|
||||
LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
|
||||
Index: acpica-unix-20191018/source/components/tables/tbfadt.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/tables/tbfadt.c
|
||||
+++ acpica-unix-20191018/source/components/tables/tbfadt.c
|
||||
@@ -233,7 +233,7 @@ AcpiTbInitGenericAddress (
|
||||
if (!(Flags & ACPI_FADT_GPE_REGISTER))
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "%s - 32-bit FADT register is too long (%u bytes, %u bits) "
|
||||
+ "%s - 32-bit FADT register is too long (%u bytes, %d bits) "
|
||||
"to convert to GAS struct - 255 bits max, truncating",
|
||||
RegisterName, ByteWidth, (ByteWidth * 8)));
|
||||
}
|
||||
@@ -304,7 +304,7 @@ AcpiTbSelectAddress (
|
||||
|
||||
ACPI_BIOS_WARNING ((AE_INFO,
|
||||
"32/64X %s address mismatch in FADT: "
|
||||
- "0x%8.8X/0x%8.8X%8.8X, using %u-bit address",
|
||||
+ "0x%8.8X/0x%8.8X%8.8X, using %d-bit address",
|
||||
RegisterName, Address32, ACPI_FORMAT_UINT64 (Address64),
|
||||
AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
|
||||
|
||||
@@ -628,7 +628,7 @@ AcpiTbConvertFadt (
|
||||
|
||||
ACPI_BIOS_WARNING ((AE_INFO,
|
||||
"32/64X address mismatch in FADT/%s: "
|
||||
- "0x%8.8X/0x%8.8X%8.8X, using %u-bit address",
|
||||
+ "0x%8.8X/0x%8.8X%8.8X, using %d-bit address",
|
||||
Name, Address32,
|
||||
ACPI_FORMAT_UINT64 (Address64->Address),
|
||||
AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
|
||||
Index: acpica-unix-20191018/source/components/tables/tbxfroot.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/tables/tbxfroot.c
|
||||
+++ acpica-unix-20191018/source/components/tables/tbxfroot.c
|
||||
@@ -177,7 +177,7 @@ AcpiFindRootPointer (
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Could not map memory at 0x%8.8X for length %u",
|
||||
- ACPI_EBDA_PTR_LOCATION, ACPI_EBDA_PTR_LENGTH));
|
||||
+ (UINT32) ACPI_EBDA_PTR_LOCATION, (UINT32) ACPI_EBDA_PTR_LENGTH));
|
||||
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
@@ -204,7 +204,7 @@ AcpiFindRootPointer (
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Could not map memory at 0x%8.8X for length %u",
|
||||
- PhysicalAddress, ACPI_EBDA_WINDOW_SIZE));
|
||||
+ PhysicalAddress, (UINT32) ACPI_EBDA_WINDOW_SIZE));
|
||||
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
@@ -236,7 +236,7 @@ AcpiFindRootPointer (
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Could not map memory at 0x%8.8X for length %u",
|
||||
- ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));
|
||||
+ (UINT32) ACPI_HI_RSDP_WINDOW_BASE, (UINT32) ACPI_HI_RSDP_WINDOW_SIZE));
|
||||
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
Index: acpica-unix-20191018/source/components/utilities/utownerid.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/utilities/utownerid.c
|
||||
+++ acpica-unix-20191018/source/components/utilities/utownerid.c
|
||||
@@ -237,7 +237,7 @@ AcpiUtReleaseOwnerId (
|
||||
else
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "Attempted release of non-allocated OwnerId: 0x%3.3X", OwnerId + 1));
|
||||
+ "Release of non-allocated OwnerId: 0x%2.2X", (UINT32) OwnerId + 1));
|
||||
}
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/compiler/aslparseop.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/aslparseop.c
|
||||
+++ acpica-unix-20191018/source/compiler/aslparseop.c
|
||||
@@ -283,7 +283,16 @@ TrCreateValuedLeafOp (
|
||||
|
||||
|
||||
Op = TrAllocateOp (ParseOpcode);
|
||||
- Op->Asl.Value.Integer = Value;
|
||||
+ if (ParseOpcode == PARSEOP_NAMESTRING ||
|
||||
+ ParseOpcode == PARSEOP_NAMESEG ||
|
||||
+ ParseOpcode == PARSEOP_STRING_LITERAL)
|
||||
+ {
|
||||
+ Op->Asl.Value.String = (char *) Value;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ Op->Asl.Value.Integer = Value;
|
||||
+ }
|
||||
|
||||
DbgPrint (ASL_PARSE_OUTPUT,
|
||||
"\nCreateValuedLeafOp Ln/Col %u/%u NewOp %p "
|
||||
Index: acpica-unix-20191018/source/include/platform/aclinux.h
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/include/platform/aclinux.h
|
||||
+++ acpica-unix-20191018/source/include/platform/aclinux.h
|
||||
@@ -232,10 +232,8 @@
|
||||
#endif
|
||||
|
||||
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
-#if defined(__PPC64__) || defined(__s390x__)
|
||||
#define ACPI_BIG_ENDIAN
|
||||
#endif
|
||||
-#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
diff -Naur acpica-unix2-20191213.orig/source/compiler/dtcompiler.h acpica-unix2-20191213/source/compiler/dtcompiler.h
|
||||
--- acpica-unix2-20191213.orig/source/compiler/dtcompiler.h 2020-02-23 18:05:24.257395129 -0700
|
||||
+++ acpica-unix2-20191213/source/compiler/dtcompiler.h 2020-02-23 18:06:42.956236378 -0700
|
||||
@@ -351,7 +351,7 @@
|
||||
|
||||
/* dtparser - lex/yacc files */
|
||||
|
||||
-UINT64 DtCompilerParserResult; /* Expression return value */
|
||||
+extern UINT64 DtCompilerParserResult; /* Expression return value */
|
||||
int
|
||||
DtCompilerParserparse (
|
||||
void);
|
||||
diff -Naur acpica-unix2-20191213.orig/source/compiler/aslcompiler.l acpica-unix2-20191213/source/compiler/aslcompiler.l
|
||||
--- acpica-unix2-20191213.orig/source/compiler/aslcompiler.l 2019-12-13 08:58:18.000000000 -0700
|
||||
+++ acpica-unix2-20191213/source/compiler/aslcompiler.l 2020-02-24 15:08:53.067560139 -0700
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
-YYSTYPE AslCompilerlval;
|
||||
+extern YYSTYPE AslCompilerlval;
|
||||
|
||||
/*
|
||||
* Generation: Use the following command line:
|
||||
diff -Naur acpica-unix2-20191213.orig/source/compiler/prparser.l acpica-unix2-20191213/source/compiler/prparser.l
|
||||
--- acpica-unix2-20191213.orig/source/compiler/prparser.l 2019-12-13 08:58:19.000000000 -0700
|
||||
+++ acpica-unix2-20191213/source/compiler/prparser.l 2020-02-24 15:09:25.909839732 -0700
|
||||
@@ -116,7 +116,7 @@
|
||||
/*
|
||||
* Local support functions
|
||||
*/
|
||||
-YY_BUFFER_STATE LexBuffer;
|
||||
+extern YY_BUFFER_STATE LexBuffer;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/include/platform/aclinux.h
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/include/platform/aclinux.h
|
||||
+++ acpica-unix-20191018/source/include/platform/aclinux.h
|
||||
@@ -233,9 +233,11 @@
|
||||
#define __cdecl
|
||||
#endif
|
||||
|
||||
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
#if defined(__PPC64__) || defined(__s390x__)
|
||||
#define ACPI_BIG_ENDIAN
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
Index: acpica-unix-20191018/source/components/tables/tbutils.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/tables/tbutils.c
|
||||
+++ acpica-unix-20191018/source/components/tables/tbutils.c
|
||||
@@ -238,9 +238,11 @@ AcpiTbGetRootTableEntry (
|
||||
* 64-bit platform, XSDT: Move (unaligned) 64-bit to local,
|
||||
* return 64-bit
|
||||
*/
|
||||
- Address64 = (UINT64) TableEntry;
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 32
|
||||
+ UINT32 Tmp32 = (UINT32) TableEntry;
|
||||
+
|
||||
+ Address64 = (UINT64) Tmp32;
|
||||
if (Address64 > ACPI_UINT32_MAX)
|
||||
{
|
||||
/* Will truncate 64-bit address to 32 bits, issue warning */
|
||||
@@ -250,9 +252,15 @@ AcpiTbGetRootTableEntry (
|
||||
" truncating",
|
||||
ACPI_FORMAT_UINT64 (Address64)));
|
||||
}
|
||||
-#endif
|
||||
+
|
||||
+ return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
|
||||
+ UINT32, TableEntry)));
|
||||
+#else
|
||||
+ Address64 = (UINT64) TableEntry;
|
||||
+
|
||||
return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
|
||||
UINT64, Address64)));
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
Index: acpica-unix-20191018/source/compiler/aslparseop.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/compiler/aslparseop.c
|
||||
+++ acpica-unix-20191018/source/compiler/aslparseop.c
|
||||
@@ -287,7 +287,11 @@ TrCreateValuedLeafOp (
|
||||
ParseOpcode == PARSEOP_NAMESEG ||
|
||||
ParseOpcode == PARSEOP_STRING_LITERAL)
|
||||
{
|
||||
+#if ACPI_MACHINE_WIDTH == 32
|
||||
+ Op->Asl.Value.String = (char *) (UINT32) Value;
|
||||
+#else
|
||||
Op->Asl.Value.String = (char *) Value;
|
||||
+#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -39,9 +39,10 @@ $BINDIR/iasl -f -of grammar.asl 2>&1 | tee grammar.asl.actual
|
|||
diff grammar.asl.actual grammar.asl.expected >/dev/null 2>&1
|
||||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
# see if converterSample.asl succeeded as expected
|
||||
$BINDIR/iasl converterSample.asl 2>&1 | tee converterSample.asl.actual
|
||||
# see if converterSample.asl failed as expected
|
||||
# NB: the -f option is required so we can see all of the errors
|
||||
$BINDIR/iasl -f -of converterSample.asl 2>&1 | tee converterSample.asl.actual
|
||||
diff converterSample.asl.actual converterSample.asl.expected >/dev/null 2>&1
|
||||
[ $? -ne 0 ] && exit 1
|
||||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
Description: Stop listing all 64bit architectures
|
||||
Check __LP64__ instead of maintaining a list of all
|
||||
64bit architectures.
|
||||
Author: Adrian Bunk <bunk@debian.org>
|
||||
|
||||
Index: acpica-unix-20191018/source/include/platform/aclinux.h
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/include/platform/aclinux.h
|
||||
+++ acpica-unix-20191018/source/include/platform/aclinux.h
|
||||
@@ -215,9 +215,7 @@
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
#define ACPI_CAST_PTHREAD_T(Pthread) ((ACPI_THREAD_ID) (Pthread))
|
||||
|
||||
-#if defined(__ia64__) || (defined(__x86_64__) && !defined(__ILP32__)) ||\
|
||||
- defined(__aarch64__) || defined(__PPC64__) ||\
|
||||
- defined(__s390x__)
|
||||
+#if defined(__LP64__)
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
#define COMPILER_DEPENDENT_INT64 long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long
|
||||
4
sources
4
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (acpica-unix2-20200214.tar.gz) = 0b22f8c8255b030b5e8a2cf5b459344d1f644b26a4fcf1e95b3682335204598a3587f8f2a5ac169f99d76a10ae529051e1dabd1672c8d8bf5a4441c71d4cb1fd
|
||||
SHA512 (acpitests-unix-20200214.tar.gz) = b4d37d4784d3fbb697f244477c085e433efa152bc4c4a06d336b216358405252a77c331f4e792f5fa9b912d6f5f200aa1b6379f1b5064e58be12cf8d4415ee15
|
||||
SHA512 (acpica-unix2-20251212.tar.gz) = ecae5ab55d04bc1fd7def717c8c2a2dd64e8708577b900dc54e0fd613c5e3e6ee25037e37abe3aa818debd75114347c272d9931f55d340ff096d2f5f6f1d185b
|
||||
SHA512 (acpitests-unix-20251212.tar.gz) = f8541f1abfd426834b8c7f17dc0eca8525de9a2e8f3a2b77311503845f26f478e66b8e3ce18e09aae5411683f57c68cbaa8c1baec6e6f567a0f768a6b4cc5715
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Index: acpica-unix-20200214/source/compiler/aslanalyze.c
|
||||
Index: acpica-unix2-20240321/source/compiler/aslanalyze.c
|
||||
===================================================================
|
||||
--- acpica-unix-20200214.orig/source/compiler/aslanalyze.c
|
||||
+++ acpica-unix-20200214/source/compiler/aslanalyze.c
|
||||
--- acpica-unix2-20240321.orig/source/compiler/aslanalyze.c
|
||||
+++ acpica-unix2-20240321/source/compiler/aslanalyze.c
|
||||
@@ -358,11 +358,16 @@ AnCheckMethodReturnValue (
|
||||
*/
|
||||
if (ThisNodeBtype != 0)
|
||||
|
|
@ -14,17 +14,17 @@ Index: acpica-unix-20200214/source/compiler/aslanalyze.c
|
|||
"Method returns [%s], %s operator requires [%s]",
|
||||
AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2);
|
||||
|
||||
- AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer);
|
||||
+ AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, strp);
|
||||
- AslError (ASL_WARNING, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer);
|
||||
+ AslError (ASL_WARNING, ASL_MSG_INVALID_TYPE, ArgOp, strp);
|
||||
+ if (cnt > 0)
|
||||
+ free(strp);
|
||||
}
|
||||
}
|
||||
|
||||
Index: acpica-unix-20200214/source/compiler/aslpredef.c
|
||||
Index: acpica-unix2-20240321/source/compiler/aslpredef.c
|
||||
===================================================================
|
||||
--- acpica-unix-20200214.orig/source/compiler/aslpredef.c
|
||||
+++ acpica-unix-20200214/source/compiler/aslpredef.c
|
||||
--- acpica-unix2-20240321.orig/source/compiler/aslpredef.c
|
||||
+++ acpica-unix2-20240321/source/compiler/aslpredef.c
|
||||
@@ -159,14 +159,19 @@ ApCheckForPredefinedMethod (
|
||||
if (MethodInfo->NumReturnNoValue &&
|
||||
ThisName->Info.ExpectedBtypes)
|
||||
|
|
@ -84,10 +84,10 @@ Index: acpica-unix-20200214/source/compiler/aslpredef.c
|
|||
return (AE_TYPE);
|
||||
}
|
||||
|
||||
Index: acpica-unix-20200214/source/compiler/aslwalks.c
|
||||
Index: acpica-unix2-20240321/source/compiler/aslwalks.c
|
||||
===================================================================
|
||||
--- acpica-unix-20200214.orig/source/compiler/aslwalks.c
|
||||
+++ acpica-unix-20200214/source/compiler/aslwalks.c
|
||||
--- acpica-unix2-20240321.orig/source/compiler/aslwalks.c
|
||||
+++ acpica-unix2-20240321/source/compiler/aslwalks.c
|
||||
@@ -515,15 +515,19 @@ AnOperandTypecheckWalkEnd (
|
||||
else if (!CommonBtypes)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ From: Al Stone <ahs3@redhat.com>
|
|||
tests/templates/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: acpica-unix-20191018/tests/templates/Makefile
|
||||
Index: acpica-unix2-20240321/tests/templates/Makefile
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/tests/templates/Makefile
|
||||
+++ acpica-unix-20191018/tests/templates/Makefile
|
||||
--- acpica-unix2-20240321.orig/tests/templates/Makefile
|
||||
+++ acpica-unix2-20240321/tests/templates/Makefile
|
||||
@@ -26,7 +26,7 @@ $(aml_obj): %.aml: %.asl
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|||
source/include/actypes.h | 26 +++++++++++++-------------
|
||||
3 files changed, 32 insertions(+), 21 deletions(-)
|
||||
|
||||
Index: acpica-unix-20191018/source/components/executer/exoparg2.c
|
||||
Index: acpica-unix2-20240321/source/components/executer/exoparg2.c
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/components/executer/exoparg2.c
|
||||
+++ acpica-unix-20191018/source/components/executer/exoparg2.c
|
||||
--- acpica-unix2-20240321.orig/source/components/executer/exoparg2.c
|
||||
+++ acpica-unix2-20240321/source/components/executer/exoparg2.c
|
||||
@@ -172,6 +172,8 @@ AcpiExOpcode_2A_2T_1R (
|
||||
ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc1 = NULL;
|
||||
|
|
@ -58,10 +58,10 @@ Index: acpica-unix-20191018/source/components/executer/exoparg2.c
|
|||
break;
|
||||
|
||||
case AML_CONCATENATE_OP: /* Concatenate (Data1, Data2, Result) */
|
||||
Index: acpica-unix-20191018/source/include/actypes.h
|
||||
Index: acpica-unix2-20240321/source/include/actypes.h
|
||||
===================================================================
|
||||
--- acpica-unix-20191018.orig/source/include/actypes.h
|
||||
+++ acpica-unix-20191018/source/include/actypes.h
|
||||
--- acpica-unix2-20240321.orig/source/include/actypes.h
|
||||
+++ acpica-unix2-20240321/source/include/actypes.h
|
||||
@@ -143,6 +143,19 @@ typedef COMPILER_DEPENDENT_INT64
|
||||
*/
|
||||
#define ACPI_THREAD_ID UINT64
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
diff -Naur acpica-unix2-20200214.orig/source/components/utilities/utstring.c acpica-unix2-20200214/source/components/utilities/utstring.c
|
||||
--- acpica-unix2-20200214.orig/source/components/utilities/utstring.c 2020-02-14 10:33:55.000000000 -0700
|
||||
+++ acpica-unix2-20200214/source/components/utilities/utstring.c 2020-02-25 11:21:31.329016004 -0700
|
||||
@@ -185,7 +185,7 @@
|
||||
{
|
||||
UINT32 i;
|
||||
BOOLEAN FoundBadChar = FALSE;
|
||||
- UINT32 OriginalName;
|
||||
+ char OriginalName[ACPI_NAMESEG_SIZE+1];
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME (UtRepairName);
|
||||
@@ -228,13 +228,13 @@
|
||||
{
|
||||
ACPI_WARNING ((AE_INFO,
|
||||
"Invalid character(s) in name (0x%.8X), repaired: [%4.4s]",
|
||||
- OriginalName, Name));
|
||||
+ (unsigned int)*OriginalName, Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Invalid character(s) in name (0x%.8X), repaired: [%4.4s]",
|
||||
- OriginalName, Name));
|
||||
+ (unsigned int)*OriginalName, Name));
|
||||
}
|
||||
}
|
||||
}
|
||||
13
uuid-len.patch
Normal file
13
uuid-len.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Index: acpica-unix2-20240321/source/tools/acpiexec/aeregion.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20240321.orig/source/tools/acpiexec/aeregion.c
|
||||
+++ acpica-unix2-20240321/source/tools/acpiexec/aeregion.c
|
||||
@@ -97,7 +97,7 @@ AeRegionHandler (
|
||||
UINT32 Value1;
|
||||
UINT32 Value2;
|
||||
ACPI_RESOURCE *Resource;
|
||||
- char Uuid[ACPI_PRM_INPUT_BUFFER_SIZE + 1];
|
||||
+ char Uuid[UUID_STRING_LENGTH + 1];
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME (AeRegionHandler);
|
||||
Loading…
Add table
Add a link
Reference in a new issue