Re: [v4 1/3] genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU

From: Thomas Gleixner
Date: Fri May 15 2015 - 09:18:07 EST


On Thu, 30 Apr 2015, Feng Wu wrote:
>
> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>

So I assume Jiang is the author, right?

> Signed-off-by: Feng Wu <feng.wu@xxxxxxxxx>

> /**
> + * irq_chip_set_vcpu_affinity_parent - Set vcpu affinity on the parent interrupt
> + * @data: Pointer to interrupt specific data
> + * @dest: The vcpu affinity information
> + */
> +int irq_chip_set_vcpu_affinity_parent(struct irq_data *data, void *vcpu_info)
> +{
> + data = data->parent_data;
> + if (data->chip->irq_set_vcpu_affinity)
> + return data->chip->irq_set_vcpu_affinity(data, vcpu_info);
> +
> + return -ENOSYS;
> +}

That needs a prototype in irq.h, methinks

> +int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);

irq_get_desc_lock() please

> + struct irq_chip *chip;
> + unsigned long flags;
> + int ret = -ENOSYS;
> +
> + if (!desc)
> + return -EINVAL;
> +
> + raw_spin_lock_irqsave(&desc->lock, flags);
> + chip = desc->irq_data.chip;
> + if (chip && chip->irq_set_vcpu_affinity)
> + ret = chip->irq_set_vcpu_affinity(irq_desc_get_irq_data(desc),

Above you fiddle with desc->irq_data directly. Why using the accessor here?

> + vcpu_info);
> + raw_spin_unlock_irqrestore(&desc->lock, flags);

Otherwise this looks good.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/