static void fsl_mc_msi_free_descs(struct device *dev) { struct msi_desc *desc, *tmp; list_for_each_entry_safe(desc, tmp, dev_to_msi_list(dev), list) { list_del(&desc->list); free_msi_entry(desc); }
static void platform_msi_free_descs(struct device *dev, int base, int nvec) { struct msi_desc *desc, *tmp; list_for_each_entry_safe(desc, tmp, dev_to_msi_list(dev), list) { if (desc->platform.msi_index >= base && desc->platform.msi_index < (base + nvec)) { list_del(&desc->list); free_msi_entry(desc); } } }
static int platform_msi_alloc_descs_with_irq(struct device *dev, int virq, int nvec, struct platform_msi_priv_data *data) { struct msi_desc *desc; int i, base = 0; if (!list_empty(dev_to_msi_list(dev))) { desc = list_last_entry(dev_to_msi_list(dev), struct msi_desc, list); base = desc->platform.msi_index + 1; }