From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH 09/13] xen/events: add a evtchn_op for port setup Date: Tue, 24 Sep 2013 10:47:55 -0400 Message-ID: <20130924144755.GH4712@phenom.dumpdata.com> References: <1379091601-30358-1-git-send-email-david.vrabel@citrix.com> <1379091601-30358-10-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1379091601-30358-10-git-send-email-david.vrabel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: David Vrabel Cc: Boris Ostrovsky , Jan Beulich , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Fri, Sep 13, 2013 at 05:59:57PM +0100, David Vrabel wrote: > From: David Vrabel > > Add a hook for port-specific setup and call it from > xen_irq_info_common_setup(). Could you explain a bit about it's semantic please? > > Signed-off-by: David Vrabel > --- > drivers/xen/events/events.c | 2 +- > drivers/xen/events/events_internal.h | 8 ++++++++ > 2 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/drivers/xen/events/events.c b/drivers/xen/events/events.c > index 8f55a49..cf1c7ba 100644 > --- a/drivers/xen/events/events.c > +++ b/drivers/xen/events/events.c > @@ -117,7 +117,7 @@ static int xen_irq_info_common_setup(struct irq_info *info, > > irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN); > > - return 0; > + return xen_evtchn_port_setup(info); > } > > static int xen_irq_info_evtchn_setup(unsigned irq, > diff --git a/drivers/xen/events/events_internal.h b/drivers/xen/events/events_internal.h > index 513c34d..32cb928 100644 > --- a/drivers/xen/events/events_internal.h > +++ b/drivers/xen/events/events_internal.h > @@ -55,6 +55,7 @@ struct irq_info { > #define PIRQ_SHAREABLE (1 << 1) > > struct evtchn_ops { > + int (*setup)(struct irq_info *info); > void (*bind_to_cpu)(struct irq_info *info, int cpu); > > void (*clear_pending)(int port); > @@ -75,6 +76,13 @@ struct irq_info *info_for_irq(unsigned irq); > unsigned cpu_from_irq(unsigned irq); > unsigned cpu_from_evtchn(unsigned int evtchn); > > +static inline int xen_evtchn_port_setup(struct irq_info *info) > +{ > + if (evtchn_ops->setup) > + return evtchn_ops->setup(info); > + return 0; > +} > + > static inline void xen_evtchn_port_bind_to_cpu(struct irq_info *info, int cpu) > { > evtchn_ops->bind_to_cpu(info, cpu); > -- > 1.7.2.5 >