[Sound-open-firmware] [PATCH v2] Use atomic API without spin lock for trace_error().
yan.wang at linux.intel.com
yan.wang at linux.intel.com
Wed Dec 6 08:05:28 CET 2017
From: Yan Wang <yan.wang at linux.intel.com>
When trace_error() is used to save error information into trace buffer,
the firmware may not in normal state and some spin lock be still locked.
So it may cause dead lock if trace_error() still uses non-atomic API
with spin lock.
Signed-off-by: Yan Wang <yan.wang at linux.intel.com>
---
src/include/reef/trace.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/include/reef/trace.h b/src/include/reef/trace.h
index ef82d75..9497f98 100644
--- a/src/include/reef/trace.h
+++ b/src/include/reef/trace.h
@@ -128,7 +128,7 @@ void trace_init(struct reef * reef);
/* error tracing */
#if TRACEE
#define trace_error(__c, __e) \
- _trace_error(__c | (__e[0] << 16) | (__e[1] <<8) | __e[2])
+ _trace_error_atomic(__c | (__e[0] << 16) | (__e[1] <<8) | __e[2])
#define trace_error_atomic(__c, __e) \
_trace_error_atomic(__c | (__e[0] << 16) | (__e[1] <<8) | __e[2])
#else
--
2.7.4
More information about the Sound-open-firmware
mailing list