From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH/RFC] KVM: fix sparse warning in include/trace/events/kvm.h Date: Mon, 19 Jan 2015 11:07:11 +0100 Message-ID: <54BCD74F.4020406@redhat.com> References: <1421331679-38118-1-git-send-email-borntraeger@de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: KVM To: Christian Borntraeger Return-path: Received: from mx1.redhat.com ([209.132.183.28]:46876 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752373AbbASKHT (ORCPT ); Mon, 19 Jan 2015 05:07:19 -0500 In-Reply-To: <1421331679-38118-1-git-send-email-borntraeger@de.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: On 15/01/2015 15:21, Christian Borntraeger wrote: > sparse complains about > include/trace/events/kvm.h:163:1: error: directive in argument list > include/trace/events/kvm.h:167:1: error: directive in argument list > include/trace/events/kvm.h:169:1: error: directive in argument list > and sparse is right. Preprocessing directives in an argument of a > macro are undefined behaviour as of C99 6.10.3p11. > > Lets use an indirection to fix this. > > Signed-off-by: Christian Borntraeger Applied to kvm/master, thanks. Paolo > --- > include/trace/events/kvm.h | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/include/trace/events/kvm.h b/include/trace/events/kvm.h > index 6edf1f2..86b399c 100644 > --- a/include/trace/events/kvm.h > +++ b/include/trace/events/kvm.h > @@ -146,6 +146,14 @@ TRACE_EVENT(kvm_msi_set_irq, > > #if defined(CONFIG_HAVE_KVM_IRQFD) > > +#ifdef kvm_irqchips > +#define kvm_ack_irq_string "irqchip %s pin %u" > +#define kvm_ack_irq_parm __print_symbolic(__entry->irqchip, kvm_irqchips), __entry->pin > +#else > +#define kvm_ack_irq_string "irqchip %d pin %u" > +#define kvm_ack_irq_parm __entry->irqchip, __entry->pin > +#endif > + > TRACE_EVENT(kvm_ack_irq, > TP_PROTO(unsigned int irqchip, unsigned int pin), > TP_ARGS(irqchip, pin), > @@ -160,13 +168,7 @@ TRACE_EVENT(kvm_ack_irq, > __entry->pin = pin; > ), > > -#ifdef kvm_irqchips > - TP_printk("irqchip %s pin %u", > - __print_symbolic(__entry->irqchip, kvm_irqchips), > - __entry->pin) > -#else > - TP_printk("irqchip %d pin %u", __entry->irqchip, __entry->pin) > -#endif > + TP_printk(kvm_ack_irq_string, kvm_ack_irq_parm) > ); > > #endif /* defined(CONFIG_HAVE_KVM_IRQFD) */ >