xen: Switch to new irq_chip functions
authorThomas Gleixner <tglx@linutronix.de>
Sat, 5 Feb 2011 20:08:54 +0000 (20:08 +0000)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 3 Mar 2011 17:00:29 +0000 (12:00 -0500)
Convert Xen to the new irq_chip functions. Brings us closer to enable
CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/events.c

index c8826b5..cf1712f 100644 (file)
@@ -277,7 +277,7 @@ static void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu)
 
        BUG_ON(irq == -1);
 #ifdef CONFIG_SMP
-       cpumask_copy(irq_to_desc(irq)->affinity, cpumask_of(cpu));
+       cpumask_copy(irq_to_desc(irq)->irq_data.affinity, cpumask_of(cpu));
 #endif
 
        clear_bit(chn, cpu_evtchn_mask(cpu_from_irq(irq)));
@@ -294,7 +294,7 @@ static void init_evtchn_cpu_bindings(void)
 
        /* By default all event channels notify CPU#0. */
        for_each_irq_desc(i, desc) {
-               cpumask_copy(desc->affinity, cpumask_of(0));
+               cpumask_copy(desc->irq_data.affinity, cpumask_of(0));
        }
 #endif
 
@@ -474,7 +474,7 @@ static bool probing_irq(int irq)
        return desc && desc->action == NULL;
 }
 
-static unsigned int startup_pirq(unsigned int irq)
+static unsigned int __startup_pirq(unsigned int irq)
 {
        struct evtchn_bind_pirq bind_pirq;
        struct irq_info *info = info_for_irq(irq);
@@ -512,9 +512,15 @@ out:
        return 0;
 }
 
-static void shutdown_pirq(unsigned int irq)
+static unsigned int startup_pirq(struct irq_data *data)
+{
+       return __startup_pirq(data->irq);
+}
+
+static void shutdown_pirq(struct irq_data *data)
 {
        struct evtchn_close close;
+       unsigned int irq = data->irq;
        struct irq_info *info = info_for_irq(irq);
        int evtchn = evtchn_from_irq(irq);
 
@@ -534,20 +540,20 @@ static void shutdown_pirq(unsigned int irq)
        info->evtchn = 0;
 }
 
-static void enable_pirq(unsigned int irq)
+static void enable_pirq(struct irq_data *data)
 {
-       startup_pirq(irq);
+       startup_pirq(data);
 }
 
-static void disable_pirq(unsigned int irq)
+static void disable_pirq(struct irq_data *data)
 {
 }
 
-static void ack_pirq(unsigned int irq)
+static void ack_pirq(struct irq_data *data)
 {
-       int evtchn = evtchn_from_irq(irq);
+       int evtchn = evtchn_from_irq(data->irq);
 
-       move_native_irq(irq);
+       irq_move_irq(data);
 
        if (VALID_EVTCHN(evtchn)) {
                mask_evtchn(evtchn);
@@ -1215,11 +1221,12 @@ static int rebind_irq_to_cpu(unsigned irq, unsigned tcpu)
        return 0;
 }
 
-static int set_affinity_irq(unsigned irq, const struct cpumask *dest)
+static int set_affinity_irq(struct irq_data *data, const struct cpumask *dest,
+                           bool force)
 {
        unsigned tcpu = cpumask_first(dest);
 
-       return rebind_irq_to_cpu(irq, tcpu);
+       return rebind_irq_to_cpu(data->irq, tcpu);
 }
 
 int resend_irq_on_evtchn(unsigned int irq)
@@ -1238,35 +1245,35 @@ int resend_irq_on_evtchn(unsigned int irq)
        return 1;
 }
 
-static void enable_dynirq(unsigned int irq)
+static void enable_dynirq(struct irq_data *data)
 {
-       int evtchn = evtchn_from_irq(irq);
+       int evtchn = evtchn_from_irq(data->irq);
 
        if (VALID_EVTCHN(evtchn))
                unmask_evtchn(evtchn);
 }
 
-static void disable_dynirq(unsigned int irq)
+static void disable_dynirq(struct irq_data *data)
 {
-       int evtchn = evtchn_from_irq(irq);
+       int evtchn = evtchn_from_irq(data->irq);
 
        if (VALID_EVTCHN(evtchn))
                mask_evtchn(evtchn);
 }
 
-static void ack_dynirq(unsigned int irq)
+static void ack_dynirq(struct irq_data *data)
 {
-       int evtchn = evtchn_from_irq(irq);
+       int evtchn = evtchn_from_irq(data->irq);
 
-       move_masked_irq(irq);
+       move_masked_irq(data->irq);
 
        if (VALID_EVTCHN(evtchn))
                unmask_evtchn(evtchn);
 }
 
-static int retrigger_dynirq(unsigned int irq)
+static int retrigger_dynirq(struct irq_data *data)
 {
-       int evtchn = evtchn_from_irq(irq);
+       int evtchn = evtchn_from_irq(data->irq);
        struct shared_info *sh = HYPERVISOR_shared_info;
        int ret = 0;
 
@@ -1315,7 +1322,7 @@ static void restore_cpu_pirqs(void)
 
                printk(KERN_DEBUG "xen: --> irq=%d, pirq=%d\n", irq, map_irq.pirq);
 
-               startup_pirq(irq);
+               __startup_pirq(irq);
        }
 }
 
@@ -1467,44 +1474,44 @@ void xen_irq_resume(void)
 }
 
 static struct irq_chip xen_dynamic_chip __read_mostly = {
-       .name           = "xen-dyn",
+       .name                   = "xen-dyn",
 
-       .disable        = disable_dynirq,
-       .mask           = disable_dynirq,
-       .unmask         = enable_dynirq,
+       .irq_disable            = disable_dynirq,
+       .irq_mask               = disable_dynirq,
+       .irq_unmask             = enable_dynirq,
 
-       .eoi            = ack_dynirq,
-       .set_affinity   = set_affinity_irq,
-       .retrigger      = retrigger_dynirq,
+       .irq_eoi                = ack_dynirq,
+       .irq_set_affinity       = set_affinity_irq,
+       .irq_retrigger          = retrigger_dynirq,
 };
 
 static struct irq_chip xen_pirq_chip __read_mostly = {
-       .name           = "xen-pirq",
+       .name                   = "xen-pirq",
 
-       .startup        = startup_pirq,
-       .shutdown       = shutdown_pirq,
+       .irq_startup            = startup_pirq,
+       .irq_shutdown           = shutdown_pirq,
 
-       .enable         = enable_pirq,
-       .unmask         = enable_pirq,
+       .irq_enable             = enable_pirq,
+       .irq_unmask             = enable_pirq,
 
-       .disable        = disable_pirq,
-       .mask           = disable_pirq,
+       .irq_disable            = disable_pirq,
+       .irq_mask               = disable_pirq,
 
-       .ack            = ack_pirq,
+       .irq_ack                = ack_pirq,
 
-       .set_affinity   = set_affinity_irq,
+       .irq_set_affinity       = set_affinity_irq,
 
-       .retrigger      = retrigger_dynirq,
+       .irq_retrigger          = retrigger_dynirq,
 };
 
 static struct irq_chip xen_percpu_chip __read_mostly = {
-       .name           = "xen-percpu",
+       .name                   = "xen-percpu",
 
-       .disable        = disable_dynirq,
-       .mask           = disable_dynirq,
-       .unmask         = enable_dynirq,
+       .irq_disable            = disable_dynirq,
+       .irq_mask               = disable_dynirq,
+       .irq_unmask             = enable_dynirq,
 
-       .ack            = ack_dynirq,
+       .irq_ack                = ack_dynirq,
 };
 
 int xen_set_callback_via(uint64_t via)