Subject: Re: [PATCH 1/3] irq: Set multiple MSI descriptor data for multiple IRQs

From: Grant Likely <[email-masked]>
Date: Thu, 06 Jun 2013 00:03:08 +0100

On Tue, 15 Jan 2013 15:38:54 +0800, Mike Qiu <[email-masked]> wrote:
> Multiple MSI only requires the IRQ in msi_desc entry to be set as
> the value of irq_base.
> 
> This patch implements the above mentioned technique.
> 
> Signed-off-by: Mike Qiu <[email-masked]>

Hi Mike,

question below...

> ---
> +int irq_set_multiple_msi_desc(unsigned int irq_base, unsigned int nvec,
> +				struct msi_desc *entry)
> +{
> +	unsigned long flags, i;
> +	struct irq_desc *desc;
> +
> +	for (i = 0; i < nvec; i++) {
> +		desc = irq_get_desc_lock(irq_base + i, &flags,
> +					IRQ_GET_DESC_CHECK_GLOBAL);
> +		if (!desc)
> +			return -EINVAL;
> +		desc->irq_data.msi_desc = entry;
> +		if (i == 0 && entry)
> +			entry->irq = irq_base;

It's not clear to me why this code only sets the irq value for the first
desc. Why don't the other descs in the array want (irq_base + i) here? A
comment describing what is going on would be appropriate and helpful.

g.