From 92b80e3e3dfacf389cff797580b3806576051dfd Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 4 Jul 2019 17:42:25 +0200 Subject: [PATCH] x86/IRQ: add explicit tracing-enabled check to trace_irq_mask() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The setup for calling trace_var() (which itself checks tb_init_done) is non-negligible, and hence a separate outer-most check is warranted. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné Acked-by: Andrew Cooper --- xen/arch/x86/irq.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index 94682e4d58..2cac28aafb 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -99,8 +99,8 @@ void unlock_vector_lock(void) spin_unlock(&vector_lock); } -static void trace_irq_mask(uint32_t event, int irq, int vector, - const cpumask_t *mask) +static void _trace_irq_mask(uint32_t event, int irq, int vector, + const cpumask_t *mask) { struct { unsigned int irq:16, vec:16; @@ -115,6 +115,13 @@ static void trace_irq_mask(uint32_t event, int irq, int vector, trace_var(event, 1, sizeof(d), &d); } +static void trace_irq_mask(uint32_t event, int irq, int vector, + const cpumask_t *mask) +{ + if ( unlikely(tb_init_done) ) + _trace_irq_mask(event, irq, vector, mask); +} + static int __init __bind_irq_vector(int irq, int vector, const cpumask_t *cpu_mask) { cpumask_t online_mask; -- 2.39.5