[coreboot-gerrit] Patch set updated for coreboot: lib/timestamp.c: only log "Timestamp table full" once

Ben Gardner (gardner.ben@gmail.com) gerrit at coreboot.org
Fri Nov 20 20:26:38 CET 2015


Ben Gardner (gardner.ben at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12506

-gerrit

commit cb3d8c24a4d2d19dd99aa879187283196cf58ff9
Author: Ben Gardner <gardner.ben at gmail.com>
Date:   Fri Nov 20 13:25:25 2015 -0600

    lib/timestamp.c: only log "Timestamp table full" once
    
    If the timestamp table gets corrupted (separate issue), the
    timestamp_sync_cache_to_cbmem() function may add a large number of bogus
    timestamp entries.
    
    This causes a flood of "ERROR: Timestamp table full".  With logs going
    to a serial console, this renders the system essentially unbootable.
    
    There really isn't a need to log that more than once, so log it when the
    last slot in the timestamp table is filled.
    
    Change-Id: I05d131183afceca31f4dac91c5edc95cfb1e443f
    Signed-off-by: Ben Gardner <gardner.ben at gmail.com>
---
 src/lib/timestamp.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/lib/timestamp.c b/src/lib/timestamp.c
index e07fd4b..03d9b8a 100644
--- a/src/lib/timestamp.c
+++ b/src/lib/timestamp.c
@@ -152,14 +152,15 @@ static void timestamp_add_table_entry(struct timestamp_table *ts_table,
 {
 	struct timestamp_entry *tse;
 
-	if (ts_table->num_entries == ts_table->max_entries) {
-		printk(BIOS_ERR, "ERROR: Timestamp table full\n");
+	if (ts_table->num_entries >= ts_table->max_entries)
 		return;
-	}
 
 	tse = &ts_table->entries[ts_table->num_entries++];
 	tse->entry_id = id;
 	tse->entry_stamp = ts_time - ts_table->base_time;
+
+	if (ts_table->num_entries == ts_table->max_entries)
+		printk(BIOS_ERR, "ERROR: Timestamp table full\n");
 }
 
 void timestamp_add(enum timestamp_id id, uint64_t ts_time)



More information about the coreboot-gerrit mailing list