list_for_each_entry(entry, &pdev->msi_list, list) {
                if (entry->irq == NO_IRQ)
                        continue;
-               msi_data = irq_get_handler_data(entry->irq);
+               msi_data = irq_get_chip_data(entry->irq);
                irq_set_msi_desc(entry->irq, NULL);
                msi_bitmap_free_hwirqs(&msi_data->bitmap,
                                       virq_to_hw(entry->irq), 1);
                        rc = -ENOSPC;
                        goto out_free;
                }
-               irq_set_handler_data(virq, msi_data);
+               /* chip_data is msi_data via host->hostdata in host->map() */
                irq_set_msi_desc(virq, entry);
 
                fsl_compose_msi_msg(pdev, hwirq, &msg, msi_data);
        u32 have_shift = 0;
        struct fsl_msi_cascade_data *cascade_data;
 
-       cascade_data = (struct fsl_msi_cascade_data *)irq_get_handler_data(irq);
+       cascade_data = irq_get_handler_data(irq);
        msi_data = cascade_data->msi_data;
 
        raw_spin_lock(&desc->lock);