|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 2 of 4] xentrace: replace ASSERT with printk in __tra
# HG changeset patch
# User Olaf Hering <olaf@xxxxxxxxx>
# Date 1310741871 -7200
# Node ID e0ff4eea0432e0af3210e090a47414a0126e9904
# Parent d0dcdddf5285eba0605a95dfda79b794803fa733
xentrace: replace ASSERT with printk in __trace_var
If trace_var gets called with large extra_data, do not crash the hypervisor.
Instead print a warning and truncate the buffer.
Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
diff -r d0dcdddf5285 -r e0ff4eea0432 xen/common/trace.c
--- a/xen/common/trace.c
+++ b/xen/common/trace.c
@@ -683,7 +683,10 @@ void __trace_var(u32 event, bool_t cycle
if ( (extra % sizeof(u32)) != 0 )
extra_word++;
- ASSERT(extra_word <= TRACE_EXTRA_MAX);
+ if ( unlikely(extra_word > TRACE_EXTRA_MAX) )
+ printk(XENLOG_WARNING "xentrace: event %x extra_data %u too large.\n",
+ event, extra);
+
extra_word = min_t(int, extra_word, TRACE_EXTRA_MAX);
/* Round size up to nearest word */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|