[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/4] xen/events: Add WARN_ON when quick lookup found invalid type.
On Thu, 24 May 2012, Konrad Rzeszutek Wilk wrote: > On Thu, May 24, 2012 at 11:58:11AM +0100, Stefano Stabellini wrote: > > On Wed, 23 May 2012, Konrad Rzeszutek Wilk wrote: > > > All of the bind_XYZ_to_irq do a quick lookup to see if the > > > event exists. And if they that value is returned instead of > > > > ^ > > ... snip. How about this: > > >From 5963cc2699db7b2893e7925bd2e68ada9d97e8ef Mon Sep 17 00:00:00 2001 > From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > Date: Wed, 23 May 2012 13:28:44 -0400 > Subject: [PATCH] xen/events: Add WARN_ON when quick lookup found invalid > type. > > All of the bind_XYZ_to_irq do a quick lookup to see if the > event exists. And if it does, then the initialized IRQ number > is returned instead of initializing a new IRQ number. > > This patch adds an extra logic to check that the type returned > is proper one and that there is an IRQ handler setup for it. > > This patch has the benefit of being able to find drivers that > are doing something naught. > > [v1: Enhanced based on Stefano's review] > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > drivers/xen/events.c | 11 +++++++++-- > 1 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/xen/events.c b/drivers/xen/events.c > index faae2f9..81f338a 100644 > --- a/drivers/xen/events.c > +++ b/drivers/xen/events.c > @@ -827,6 +827,9 @@ int bind_evtchn_to_irq(unsigned int evtchn) > handle_edge_irq, "event"); > > xen_irq_info_evtchn_init(irq, evtchn); > + } else { > + struct irq_info *info = info_for_irq(irq); > + WARN_ON(info == NULL || info->type != IRQT_EVTCHN); > } > > out: > @@ -862,8 +865,10 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned > int cpu) > xen_irq_info_ipi_init(cpu, irq, evtchn, ipi); > > bind_evtchn_to_cpu(evtchn, cpu); > + } else { > + struct irq_info *info = info_for_irq(irq); > + WARN_ON(info == NULL || info->type != IRQT_IPI); > } > - > out: > mutex_unlock(&irq_mapping_update_lock); > return irq; > @@ -939,8 +944,10 @@ int bind_virq_to_irq(unsigned int virq, unsigned int cpu) > xen_irq_info_virq_init(cpu, irq, evtchn, virq); > > bind_evtchn_to_cpu(evtchn, cpu); > + } else { > + struct irq_info *info = info_for_irq(irq); > + WARN_ON(info == NULL || info->type != IRQT_VIRQ); > } > - > out: > mutex_unlock(&irq_mapping_update_lock); > I don't want to nitpick but you removed 2 out of 3 spaced before the out label. In any case: Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |