Re: [PATCH 10/10] irqchip/gic-v4: Make the doorbells managed affinity interrupts

From: Thomas Gleixner
Date: Thu Oct 12 2017 - 05:22:39 EST


On Tue, 10 Oct 2017, Marc Zyngier wrote:
> int its_alloc_vcpu_irqs(struct its_vm *vm)
> {
> int vpe_base_irq, i;
>
> + vm->affinity_masks = kzalloc(vm->nr_vpes * sizeof(*vm->affinity_masks),
> + GFP_KERNEL);
> + if (!vm->affinity_masks)
> + goto err;
> +
> + for (i = 0; i < vm->nr_vpes; i++) {
> + if (!alloc_cpumask_var(&vm->affinity_masks[i], GFP_KERNEL))
> + goto err;
> +
> + cpumask_copy(vm->affinity_masks[i], cpu_possible_mask);

That looks a bit like abuse of managed interrupts as you don't use any of
the managing parts, i.e. the managed shutdown/startup on cpu hotplug.

You can prevent user space from fiddling with the affinities by flagging
these interrupts with IRQ_NO_BALANCING.

Thanks,

tglx