platform-msi: Track shared domain allocation
[linux-2.6-microblaze.git] / drivers / base / platform-msi.c
index c4a17e5..2c1e2e0 100644 (file)
@@ -59,9 +59,15 @@ static int platform_msi_init(struct irq_domain *domain,
        return irq_domain_set_hwirq_and_chip(domain, virq, hwirq,
                                             info->chip, info->chip_data);
 }
+
+static void platform_msi_set_proxy_dev(msi_alloc_info_t *arg)
+{
+       arg->flags |= MSI_ALLOC_FLAGS_PROXY_DEVICE;
+}
 #else
 #define platform_msi_set_desc          NULL
 #define platform_msi_init              NULL
+#define platform_msi_set_proxy_dev(x)  do {} while(0)
 #endif
 
 static void platform_msi_update_dom_ops(struct msi_domain_info *info)
@@ -343,6 +349,7 @@ __platform_msi_create_device_domain(struct device *dev,
        if (!domain)
                goto free_priv;
 
+       platform_msi_set_proxy_dev(&data->arg);
        err = msi_domain_prepare_irqs(domain->parent, dev, nvec, &data->arg);
        if (err)
                goto free_domain;