raw_spin_unlock_irqrestore(&ioapic_lock, flags);
 }
 
-static void mask_ioapic_irq(unsigned int irq)
+static void mask_ioapic_irq(struct irq_data *data)
 {
-       struct irq_cfg *cfg = get_irq_chip_data(irq);
-
-       mask_ioapic(cfg);
+       mask_ioapic(data->chip_data);
 }
 
 static void __unmask_ioapic(struct irq_cfg *cfg)
        raw_spin_unlock_irqrestore(&ioapic_lock, flags);
 }
 
-static void unmask_ioapic_irq(unsigned int irq)
+static void unmask_ioapic_irq(struct irq_data *data)
 {
-       struct irq_cfg *cfg = get_irq_chip_data(irq);
-
-       unmask_ioapic(cfg);
+       unmask_ioapic(data->chip_data);
 }
 
 static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin)
        return was_pending;
 }
 
-static int ioapic_retrigger_irq(unsigned int irq)
+static int ioapic_retrigger_irq(struct irq_data *data)
 {
-
-       struct irq_cfg *cfg = irq_cfg(irq);
+       struct irq_cfg *cfg = data->chip_data;
        unsigned long flags;
 
        raw_spin_lock_irqsave(&vector_lock, flags);
 static inline void irq_complete_move(struct irq_cfg *cfg) { }
 #endif
 
-static void ack_apic_edge(unsigned int irq)
+static void ack_apic_edge(struct irq_data *data)
 {
-       struct irq_cfg *cfg = get_irq_chip_data(irq);
-
-       irq_complete_move(cfg);
-       move_native_irq(irq);
+       irq_complete_move(data->chip_data);
+       move_native_irq(data->irq);
        ack_APIC_irq();
 }
 
        raw_spin_unlock_irqrestore(&ioapic_lock, flags);
 }
 
-static void ack_apic_level(unsigned int irq)
+static void ack_apic_level(struct irq_data *data)
 {
+       struct irq_cfg *cfg = data->chip_data;
+       int i, do_unmask_irq = 0, irq = data->irq;
        struct irq_desc *desc = irq_to_desc(irq);
-       struct irq_cfg *cfg = get_irq_desc_chip_data(desc);
-       int i, do_unmask_irq = 0;
        unsigned long v;
 
        irq_complete_move(cfg);
 }
 
 #ifdef CONFIG_INTR_REMAP
-static void ir_ack_apic_edge(unsigned int irq)
+static void ir_ack_apic_edge(struct irq_data *data)
 {
        ack_APIC_irq();
 }
 
-static void ir_ack_apic_level(unsigned int irq)
+static void ir_ack_apic_level(struct irq_data *data)
 {
-       struct irq_cfg *cfg = get_irq_chip_data(irq);
-
        ack_APIC_irq();
-       eoi_ioapic_irq(irq, cfg);
+       eoi_ioapic_irq(data->irq, data->chip_data);
 }
 #endif /* CONFIG_INTR_REMAP */
 
 static struct irq_chip ioapic_chip __read_mostly = {
        .name           = "IO-APIC",
        .irq_startup    = startup_ioapic_irq,
-       .mask           = mask_ioapic_irq,
-       .unmask         = unmask_ioapic_irq,
-       .ack            = ack_apic_edge,
-       .eoi            = ack_apic_level,
+       .irq_mask       = mask_ioapic_irq,
+       .irq_unmask     = unmask_ioapic_irq,
+       .irq_ack        = ack_apic_edge,
+       .irq_eoi        = ack_apic_level,
 #ifdef CONFIG_SMP
        .set_affinity   = set_ioapic_affinity_irq,
 #endif
-       .retrigger      = ioapic_retrigger_irq,
+       .irq_retrigger  = ioapic_retrigger_irq,
 };
 
 static struct irq_chip ir_ioapic_chip __read_mostly = {
        .name           = "IR-IO-APIC",
        .irq_startup    = startup_ioapic_irq,
-       .mask           = mask_ioapic_irq,
-       .unmask         = unmask_ioapic_irq,
+       .irq_mask       = mask_ioapic_irq,
+       .irq_unmask     = unmask_ioapic_irq,
 #ifdef CONFIG_INTR_REMAP
-       .ack            = ir_ack_apic_edge,
-       .eoi            = ir_ack_apic_level,
+       .irq_ack        = ir_ack_apic_edge,
+       .irq_eoi        = ir_ack_apic_level,
 #ifdef CONFIG_SMP
        .set_affinity   = set_ir_ioapic_affinity_irq,
 #endif
 #endif
-       .retrigger      = ioapic_retrigger_irq,
+       .irq_retrigger  = ioapic_retrigger_irq,
 };
 
 static inline void init_IO_APIC_traps(void)
  * The local APIC irq-chip implementation:
  */
 
-static void mask_lapic_irq(unsigned int irq)
+static void mask_lapic_irq(struct irq_data *data)
 {
        unsigned long v;
 
        apic_write(APIC_LVT0, v | APIC_LVT_MASKED);
 }
 
-static void unmask_lapic_irq(unsigned int irq)
+static void unmask_lapic_irq(struct irq_data *data)
 {
        unsigned long v;
 
        apic_write(APIC_LVT0, v & ~APIC_LVT_MASKED);
 }
 
-static void ack_lapic_irq(unsigned int irq)
+static void ack_lapic_irq(struct irq_data *data)
 {
        ack_APIC_irq();
 }
 
 static struct irq_chip lapic_chip __read_mostly = {
        .name           = "local-APIC",
-       .mask           = mask_lapic_irq,
-       .unmask         = unmask_lapic_irq,
-       .ack            = ack_lapic_irq,
+       .irq_mask       = mask_lapic_irq,
+       .irq_unmask     = unmask_lapic_irq,
+       .irq_ack        = ack_lapic_irq,
 };
 
 static void lapic_register_intr(int irq, struct irq_desc *desc)
        .name           = "PCI-MSI",
        .irq_unmask     = unmask_msi_irq,
        .irq_mask       = mask_msi_irq,
-       .ack            = ack_apic_edge,
+       .irq_ack        = ack_apic_edge,
 #ifdef CONFIG_SMP
        .set_affinity   = set_msi_irq_affinity,
 #endif
-       .retrigger      = ioapic_retrigger_irq,
+       .irq_retrigger  = ioapic_retrigger_irq,
 };
 
 static struct irq_chip msi_ir_chip = {
        .irq_unmask     = unmask_msi_irq,
        .irq_mask       = mask_msi_irq,
 #ifdef CONFIG_INTR_REMAP
-       .ack            = ir_ack_apic_edge,
+       .irq_ack        = ir_ack_apic_edge,
 #ifdef CONFIG_SMP
        .set_affinity   = ir_set_msi_irq_affinity,
 #endif
 #endif
-       .retrigger      = ioapic_retrigger_irq,
+       .irq_retrigger  = ioapic_retrigger_irq,
 };
 
 /*
        .name = "DMAR_MSI",
        .unmask = dmar_msi_unmask,
        .mask = dmar_msi_mask,
-       .ack = ack_apic_edge,
+       .irq_ack = ack_apic_edge,
 #ifdef CONFIG_SMP
        .set_affinity = dmar_msi_set_affinity,
 #endif
-       .retrigger = ioapic_retrigger_irq,
+       .irq_retrigger = ioapic_retrigger_irq,
 };
 
 int arch_setup_dmar_msi(unsigned int irq)
        .unmask = hpet_msi_unmask,
        .mask = hpet_msi_mask,
 #ifdef CONFIG_INTR_REMAP
-       .ack = ir_ack_apic_edge,
+       .irq_ack = ir_ack_apic_edge,
 #ifdef CONFIG_SMP
        .set_affinity = ir_set_msi_irq_affinity,
 #endif
 #endif
-       .retrigger = ioapic_retrigger_irq,
+       .irq_retrigger = ioapic_retrigger_irq,
 };
 
 static struct irq_chip hpet_msi_type = {
        .name = "HPET_MSI",
        .unmask = hpet_msi_unmask,
        .mask = hpet_msi_mask,
-       .ack = ack_apic_edge,
+       .irq_ack = ack_apic_edge,
 #ifdef CONFIG_SMP
        .set_affinity = hpet_msi_set_affinity,
 #endif
-       .retrigger = ioapic_retrigger_irq,
+       .irq_retrigger = ioapic_retrigger_irq,
 };
 
 int arch_setup_hpet_msi(unsigned int irq, unsigned int id)
        .name           = "PCI-HT",
        .mask           = mask_ht_irq,
        .unmask         = unmask_ht_irq,
-       .ack            = ack_apic_edge,
+       .irq_ack        = ack_apic_edge,
 #ifdef CONFIG_SMP
        .set_affinity   = set_ht_irq_affinity,
 #endif
-       .retrigger      = ioapic_retrigger_irq,
+       .irq_retrigger  = ioapic_retrigger_irq,
 };
 
 int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)