summaryrefslogtreecommitdiffstats
path: root/src/lib/timestamp.c
diff options
context:
space:
mode:
authorBen Gardner <gardner.ben@gmail.com>2015-11-20 13:25:25 -0600
committerMartin Roth <martinroth@google.com>2015-11-24 21:01:25 +0100
commitf5fd4c99d5b05fd9677cf81124d5ad5ef2270011 (patch)
treef8883929177e3c07594af10f40549701302afd33 /src/lib/timestamp.c
parent1ef80141c05bd1a5acb17b3b59567fd2d4dee9f0 (diff)
downloadcoreboot-f5fd4c99d5b05fd9677cf81124d5ad5ef2270011.tar.gz
coreboot-f5fd4c99d5b05fd9677cf81124d5ad5ef2270011.tar.bz2
coreboot-f5fd4c99d5b05fd9677cf81124d5ad5ef2270011.zip
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@gmail.com> Reviewed-on: http://review.coreboot.org/12506 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/lib/timestamp.c')
-rw-r--r--src/lib/timestamp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/timestamp.c b/src/lib/timestamp.c
index e07fd4beade2..03d9b8abdf9e 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)