From 10d7022395d4502478a961e5b5fd8fa062074d65 Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Tue, 6 Mar 2012 15:42:09 +0100 Subject: [PATCH] ACPI: Handle indirect packages Scan for packages outside of _PRT-methods (fix #141) --- os/src/drivers/acpi/acpi.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/os/src/drivers/acpi/acpi.cc b/os/src/drivers/acpi/acpi.cc index 47052f03c9..49b890c08d 100644 --- a/os/src/drivers/acpi/acpi.cc +++ b/os/src/drivers/acpi/acpi.cc @@ -322,12 +322,12 @@ class Element : public List::Element /** * Return parent of this element */ - Element *_parent() + Element *_parent(bool update_size = false) { Element *parent = list()->first(); /* set length of previous element */ - if (parent && !parent->size()) + if (update_size && parent && !parent->size()) parent->size(_data - parent->data()); /* find parent */ @@ -346,7 +346,7 @@ class Element : public List::Element void _set_name() { uint8_t const *name = _name_addr(); - Element *parent = _parent(); + Element *parent = _parent(true); uint32_t prefix_len = _prefix_len(name); if (_name_len <= prefix_len) {