[kernel/f13/master] - linux-2.6-acpi-fix-alias.patch: fix ACPI object aliasing (#608648)
Matthew Garrett
mjg59 at fedoraproject.org
Wed Feb 9 17:12:52 UTC 2011
commit 786d4607590e58b3544ca59f82cb9b83ff07e7bb
Author: Matthew Garrett <mjg at redhat.com>
Date: Wed Feb 9 12:12:47 2011 -0500
- linux-2.6-acpi-fix-alias.patch: fix ACPI object aliasing (#608648)
kernel.spec | 6 +++++-
linux-2.6-acpi-fix-alias.patch | 33 +++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 1 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 6fb1c8b..e197392 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -648,6 +648,7 @@ Patch390: linux-2.6-defaults-acpi-video.patch
Patch391: linux-2.6-acpi-video-dos.patch
Patch392: linux-2.6-acpi-video-export-edid.patch
Patch393: acpi-ec-add-delay-before-write.patch
+Patch394: linux-2.6-acpi-fix-alias.patch
Patch450: linux-2.6-input-kill-stupid-messages.patch
Patch452: linux-2.6.30-no-pcspkr-modalias.patch
@@ -1366,6 +1367,7 @@ ApplyPatch linux-2.6-defaults-acpi-video.patch
ApplyPatch linux-2.6-acpi-video-dos.patch
ApplyPatch linux-2.6-acpi-video-export-edid.patch
ApplyPatch acpi-ec-add-delay-before-write.patch
+ApplyPatch linux-2.6-acpi-fix-alias.patch
# Various low-impact patches to aid debugging.
ApplyPatch linux-2.6-debug-sizeof-structs.patch
@@ -2301,8 +2303,10 @@ fi
%kernel_variant_files %{with_pae} PAE
%kernel_variant_files %{with_pae_debug} PAEdebug
-
%changelog
+* Wed Feb 09 2011 Matthew Garrett <mjg at redhat.com>
+- linux-2.6-acpi-fix-alias.patch: fix ACPI object aliasing (#608648)
+
* Sat Feb 05 2011 Chuck Ebbert <cebbert at redhat.com>
- Linux 2.6.34.8
- Drop merged patches:
diff --git a/linux-2.6-acpi-fix-alias.patch b/linux-2.6-acpi-fix-alias.patch
new file mode 100644
index 0000000..bd29568
--- /dev/null
+++ b/linux-2.6-acpi-fix-alias.patch
@@ -0,0 +1,33 @@
+diff -up linux-2.6.34.x86_64/drivers/acpi/acpica/dsobject.c.mjg59 linux-2.6.34.x86_64/drivers/acpi/acpica/dsobject.c
+--- linux-2.6.34.x86_64/drivers/acpi/acpica/dsobject.c.mjg59 2010-05-16 17:17:36.000000000 -0400
++++ linux-2.6.34.x86_64/drivers/acpi/acpica/dsobject.c 2011-02-09 12:08:58.430275518 -0500
+@@ -81,6 +81,7 @@ acpi_ds_build_internal_object(struct acp
+ {
+ union acpi_operand_object *obj_desc;
+ acpi_status status;
++ acpi_object_type type;
+
+ ACPI_FUNCTION_TRACE(ds_build_internal_object);
+
+@@ -172,7 +173,20 @@ acpi_ds_build_internal_object(struct acp
+ return_ACPI_STATUS(status);
+ }
+
+- switch (op->common.node->type) {
++ /*
++ * Special handling for Alias objects. We need to setup the type
++ * and the Op->Common.Node to point to the Alias target. Note,
++ * Alias has at most one level of indirection internally.
++ */
++ type = op->common.node->type;
++ if (type == ACPI_TYPE_LOCAL_ALIAS) {
++ type = obj_desc->common.type;
++ op->common.node =
++ ACPI_CAST_PTR(struct acpi_namespace_node,
++ op->common.node->object);
++ }
++
++ switch (type) {
+ /*
+ * For these types, we need the actual node, not the subobject.
+ * However, the subobject did not get an extra reference count above.
More information about the scm-commits
mailing list