Zheng Bao ([email protected]) just uploaded a new patch set to gerrit, which 
you can find at http://review.coreboot.org/885

-gerrit

commit ec59075b9eec1e99e1a8febebffbd78329e0ad41
Author: zbao <[email protected]>
Date:   Fri Apr 13 13:48:50 2012 +0800

    Fix messy code in ALIB
    
    The address return from PICK_ALIB is not protected by Coreboot. We
    need to use the "current", which is the correct way to allocate the
    ACPI table.
    
    Change-Id: I250066eb5f755275f75c37789ce8760de35b046b
    Signed-off-by: Zheng Bao <[email protected]>
    Signed-off-by: zbao <[email protected]>
---
 src/mainboard/amd/dinar/acpi_tables.c         |    4 ++--
 src/mainboard/amd/inagua/acpi_tables.c        |    7 +++----
 src/mainboard/amd/persimmon/acpi_tables.c     |    7 +++----
 src/mainboard/amd/south_station/acpi_tables.c |    7 +++----
 src/mainboard/amd/union_station/acpi_tables.c |    7 +++----
 src/mainboard/asrock/e350m1/acpi_tables.c     |    7 +++----
 src/mainboard/supermicro/h8qgi/acpi_tables.c  |    4 ++--
 7 files changed, 19 insertions(+), 24 deletions(-)

diff --git a/src/mainboard/amd/dinar/acpi_tables.c 
b/src/mainboard/amd/dinar/acpi_tables.c
index 741ba99..4ebe5be 100644
--- a/src/mainboard/amd/dinar/acpi_tables.c
+++ b/src/mainboard/amd/dinar/acpi_tables.c
@@ -264,9 +264,9 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
+               acpi_add_table(rsdp, (void *)alib);
        } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }
diff --git a/src/mainboard/amd/inagua/acpi_tables.c 
b/src/mainboard/amd/inagua/acpi_tables.c
index e521b4b..c79614e 100644
--- a/src/mainboard/amd/inagua/acpi_tables.c
+++ b/src/mainboard/amd/inagua/acpi_tables.c
@@ -230,11 +230,10 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
-       }
-       else {
+               acpi_add_table(rsdp, (void *)alib);
+       } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }
 
diff --git a/src/mainboard/amd/persimmon/acpi_tables.c 
b/src/mainboard/amd/persimmon/acpi_tables.c
index 00a08d2..39de42b 100644
--- a/src/mainboard/amd/persimmon/acpi_tables.c
+++ b/src/mainboard/amd/persimmon/acpi_tables.c
@@ -230,11 +230,10 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
-       }
-       else {
+               acpi_add_table(rsdp, (void *)alib);
+       } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }
 
diff --git a/src/mainboard/amd/south_station/acpi_tables.c 
b/src/mainboard/amd/south_station/acpi_tables.c
index c49a8e2..55bb564 100644
--- a/src/mainboard/amd/south_station/acpi_tables.c
+++ b/src/mainboard/amd/south_station/acpi_tables.c
@@ -230,11 +230,10 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
-       }
-       else {
+               acpi_add_table(rsdp, (void *)alib);
+       } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }
 
diff --git a/src/mainboard/amd/union_station/acpi_tables.c 
b/src/mainboard/amd/union_station/acpi_tables.c
index c49a8e2..55bb564 100644
--- a/src/mainboard/amd/union_station/acpi_tables.c
+++ b/src/mainboard/amd/union_station/acpi_tables.c
@@ -230,11 +230,10 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
-       }
-       else {
+               acpi_add_table(rsdp, (void *)alib);
+       } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }
 
diff --git a/src/mainboard/asrock/e350m1/acpi_tables.c 
b/src/mainboard/asrock/e350m1/acpi_tables.c
index c49a8e2..55bb564 100644
--- a/src/mainboard/asrock/e350m1/acpi_tables.c
+++ b/src/mainboard/asrock/e350m1/acpi_tables.c
@@ -230,11 +230,10 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
-       }
-       else {
+               acpi_add_table(rsdp, (void *)alib);
+       } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }
 
diff --git a/src/mainboard/supermicro/h8qgi/acpi_tables.c 
b/src/mainboard/supermicro/h8qgi/acpi_tables.c
index 7b97a92..1111a2a 100644
--- a/src/mainboard/supermicro/h8qgi/acpi_tables.c
+++ b/src/mainboard/supermicro/h8qgi/acpi_tables.c
@@ -264,9 +264,9 @@ unsigned long write_acpi_tables(unsigned long start)
        alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
        if (alib != NULL) {
                memcpy((void *)current, alib, alib->length);
-               ssdt = (acpi_header_t *) current;
+               alib = (acpi_header_t *) current;
                current += alib->length;
-               acpi_add_table(rsdp,alib);
+               acpi_add_table(rsdp, (void *)alib);
        } else {
                printk(BIOS_DEBUG, "    AGESA ALIB SSDT table NULL. 
Skipping.\n");
        }

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to