From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Vrabel Subject: [PATCH 10/12] xen/events: add a evtchn_op for port setup Date: Tue, 19 Mar 2013 21:04:57 +0000 Message-ID: <1363727099-25519-11-git-send-email-david.vrabel@citrix.com> References: <1363727099-25519-1-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1363727099-25519-1-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: xen-devel@lists.xen.org Cc: Wei Liu , Keir Fraser , David Vrabel , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org From: David Vrabel Add a hook for port-specific setup and call it from xen_irq_info_common_setup(). 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 50f8ba6..e6895b9 100644 --- a/drivers/xen/events/events.c +++ b/drivers/xen/events/events.c @@ -112,7 +112,7 @@ static int xen_irq_info_common_setup(struct irq_info *info, evtchn_to_irq[evtchn] = irq; - 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 6badb05..1c71a5d 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); @@ -76,6 +77,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