]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
x86/IRQ: add explicit tracing-enabled check to trace_irq_mask()
authorJan Beulich <jbeulich@suse.com>
Thu, 4 Jul 2019 15:42:25 +0000 (17:42 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 4 Jul 2019 15:42:25 +0000 (17:42 +0200)
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 <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/irq.c

index 94682e4d58067be3443cd0d8a0fdc1f7d85ab2b8..2cac28aafbde1267a181413fe105a18da893a8ae 100644 (file)
@@ -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;