summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2020-10-17 14:31:57 +0200
committerTom Rini <trini@konsulko.com>2020-10-27 13:50:53 -0400
commit993a06b6144d54ae2ad83cc25c18acb9d1720ad0 (patch)
treee62aa87d0f033449d3d182edb4ad328c4c1a847a
parent986c980c8250849d9394fdf377a3de75edb11888 (diff)
downloadu-boot-993a06b6144d54ae2ad83cc25c18acb9d1720ad0.tar.gz
log: move processing_msg to global data
Replace the static variable processing_msg by a field in the global data. Make the field bool at it can only be true or false. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--common/log.c7
-rw-r--r--include/asm-generic/global_data.h8
2 files changed, 11 insertions, 4 deletions
diff --git a/common/log.c b/common/log.c
index b7a6ebe298..6a59f2ebe5 100644
--- a/common/log.c
+++ b/common/log.c
@@ -199,24 +199,23 @@ static bool log_passes_filters(struct log_device *ldev, struct log_rec *rec)
static int log_dispatch(struct log_rec *rec)
{
struct log_device *ldev;
- static int processing_msg;
/*
* When a log driver writes messages (e.g. via the network stack) this
* may result in further generated messages. We cannot process them here
* as this might result in infinite recursion.
*/
- if (processing_msg)
+ if (gd->processing_msg)
return 0;
/* Emit message */
- processing_msg = 1;
+ gd->processing_msg = true;
list_for_each_entry(ldev, &gd->log_head, sibling_node) {
if ((ldev->flags & LOGDF_ENABLE) &&
log_passes_filters(ldev, rec))
ldev->drv->emit(ldev, rec);
}
- processing_msg = 0;
+ gd->processing_msg = false;
return 0;
}
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index ebb740d34f..db83f59ceb 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -363,6 +363,14 @@ struct global_data {
* &enum log_fmt defines the bits of the bit mask.
*/
int log_fmt;
+
+ /**
+ * @processing_msg: a log message is being processed
+ *
+ * This flag is used to suppress the creation of additional messages
+ * while another message is being processed.
+ */
+ bool processing_msg;
#endif
#if CONFIG_IS_ENABLED(BLOBLIST)
/**