diff options
Diffstat (limited to 'kernel/irq/msi.c')
| -rw-r--r-- | kernel/irq/msi.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c index ddc2f5427f75..48eadf416c24 100644 --- a/kernel/irq/msi.c +++ b/kernel/irq/msi.c @@ -265,13 +265,20 @@ struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,  					 struct msi_domain_info *info,  					 struct irq_domain *parent)  { +	struct irq_domain *domain; +  	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)  		msi_domain_update_dom_ops(info);  	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)  		msi_domain_update_chip_ops(info); -	return irq_domain_create_hierarchy(parent, IRQ_DOMAIN_FLAG_MSI, 0, -					   fwnode, &msi_domain_ops, info); +	domain = irq_domain_create_hierarchy(parent, IRQ_DOMAIN_FLAG_MSI, 0, +					     fwnode, &msi_domain_ops, info); + +	if (domain && !domain->name && info->chip) +		domain->name = info->chip->name; + +	return domain;  }  int msi_domain_prepare_irqs(struct irq_domain *domain, struct device *dev, @@ -308,7 +315,7 @@ int msi_domain_populate_irqs(struct irq_domain *domain, struct device *dev,  		ops->set_desc(arg, desc);  		/* Assumes the domain mutex is held! */ -		ret = irq_domain_alloc_irqs_recursive(domain, virq, 1, arg); +		ret = irq_domain_alloc_irqs_hierarchy(domain, virq, 1, arg);  		if (ret)  			break; |