[coreboot-gerrit] New patch to review for coreboot: ccc89fc elog: Make sure the elog data structures are initialized in elog_clear.

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Mon Nov 18 23:04:43 CET 2013


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4144

-gerrit

commit ccc89fc7ae090f1c044b9dd9a502a11754085d46
Author: Gabe Black <gabeblack at google.com>
Date:   Thu Apr 25 17:21:58 2013 -0700

    elog: Make sure the elog data structures are initialized in elog_clear.
    
    If elog_clear is called before other elog functions, for instance if it's
    called through an SMI immediately after the system boots, then the elog data
    structures won't have been set up and the system will go off the deep end.
    This change adds a call to elog_init to elog_clear to make sure things things
    are always initialized before we start using them.
    
    Before this change, this command would cause
    the system to lock up if run immediately after boot:
    
    echo 1 > /sys/firmware/gsmi/clear_eventlog
    
    After this change, that results in the log being cleared correctly.
    
    Change-Id: I45027f0dbfa40ca8c581954a93b14b4fedce91ed
    Signed-off-by: Gabe Black <gabeblack at google.com>
    Reviewed-on: https://gerrit.chromium.org/gerrit/49303
    Reviewed-by: Duncan Laurie <dlaurie at chromium.org>
    Reviewed-by: Stefan Reinauer <reinauer at google.com>
    Commit-Queue: Gabe Black <gabeblack at chromium.org>
    Tested-by: Gabe Black <gabeblack at chromium.org>
---
 src/drivers/elog/elog.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c
index 6e89b5f..6de5123 100644
--- a/src/drivers/elog/elog.c
+++ b/src/drivers/elog/elog.c
@@ -746,6 +746,10 @@ int elog_clear(void)
 
 	elog_debug("elog_clear()\n");
 
+	/* Make sure ELOG structures are initialized */
+	if (elog_init() < 0)
+		return -1;
+
 	/* Erase flash area */
 	elog_flash_erase_area();
 



More information about the coreboot-gerrit mailing list