mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-28 01:51:33 +00:00
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>
This commit is contained in:
parent
986c980c82
commit
993a06b614
2 changed files with 11 additions and 4 deletions
|
@ -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)
|
static int log_dispatch(struct log_rec *rec)
|
||||||
{
|
{
|
||||||
struct log_device *ldev;
|
struct log_device *ldev;
|
||||||
static int processing_msg;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When a log driver writes messages (e.g. via the network stack) this
|
* When a log driver writes messages (e.g. via the network stack) this
|
||||||
* may result in further generated messages. We cannot process them here
|
* may result in further generated messages. We cannot process them here
|
||||||
* as this might result in infinite recursion.
|
* as this might result in infinite recursion.
|
||||||
*/
|
*/
|
||||||
if (processing_msg)
|
if (gd->processing_msg)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Emit message */
|
/* Emit message */
|
||||||
processing_msg = 1;
|
gd->processing_msg = true;
|
||||||
list_for_each_entry(ldev, &gd->log_head, sibling_node) {
|
list_for_each_entry(ldev, &gd->log_head, sibling_node) {
|
||||||
if ((ldev->flags & LOGDF_ENABLE) &&
|
if ((ldev->flags & LOGDF_ENABLE) &&
|
||||||
log_passes_filters(ldev, rec))
|
log_passes_filters(ldev, rec))
|
||||||
ldev->drv->emit(ldev, rec);
|
ldev->drv->emit(ldev, rec);
|
||||||
}
|
}
|
||||||
processing_msg = 0;
|
gd->processing_msg = false;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -363,6 +363,14 @@ struct global_data {
|
||||||
* &enum log_fmt defines the bits of the bit mask.
|
* &enum log_fmt defines the bits of the bit mask.
|
||||||
*/
|
*/
|
||||||
int log_fmt;
|
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
|
#endif
|
||||||
#if CONFIG_IS_ENABLED(BLOBLIST)
|
#if CONFIG_IS_ENABLED(BLOBLIST)
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue