}
 
 #ifdef CONFIG_SMP
-static int sn_set_msi_irq_affinity(unsigned int irq,
-                                   const struct cpumask *cpu_mask)
+static int sn_set_msi_irq_affinity(struct irq_data *data,
+                                  const struct cpumask *cpu_mask, bool force)
 {
        struct msi_msg msg;
        int slice;
        struct sn_irq_info *sn_irq_info;
        struct sn_irq_info *new_irq_info;
        struct sn_pcibus_provider *provider;
-       unsigned int cpu;
+       unsigned int cpu, irq = data->irq;
 
        cpu = cpumask_first(cpu_mask);
        sn_irq_info = sn_msi_info[irq].sn_irq_info;
        msg.address_lo = (u32)(bus_addr & 0x00000000ffffffff);
 
        write_msi_msg(irq, &msg);
-       cpumask_copy(irq_desc[irq].affinity, cpu_mask);
+       cpumask_copy(data->affinity, cpu_mask);
 
        return 0;
 }
 #endif /* CONFIG_SMP */
 
-static void sn_ack_msi_irq(unsigned int irq)
+static void sn_ack_msi_irq(struct irq_data *data)
 {
-       move_native_irq(irq);
+       move_native_irq(data->irq);
        ia64_eoi();
 }
 
-static int sn_msi_retrigger_irq(unsigned int irq)
+static int sn_msi_retrigger_irq(struct irq_data *data)
 {
-       unsigned int vector = irq;
+       unsigned int vector = data->irq;
        ia64_resend_irq(vector);
 
        return 1;
 }
 
 static struct irq_chip sn_msi_chip = {
-       .name           = "PCI-MSI",
-       .irq_mask       = mask_msi_irq,
-       .irq_unmask     = unmask_msi_irq,
-       .ack            = sn_ack_msi_irq,
+       .name                   = "PCI-MSI",
+       .irq_mask               = mask_msi_irq,
+       .irq_unmask             = unmask_msi_irq,
+       .irq_ack                = sn_ack_msi_irq,
 #ifdef CONFIG_SMP
-       .set_affinity   = sn_set_msi_irq_affinity,
+       .irq_set_affinity       = sn_set_msi_irq_affinity,
 #endif
-       .retrigger      = sn_msi_retrigger_irq,
+       .irq_retrigger          = sn_msi_retrigger_irq,
 };