irqchip/gic-v4.1: Update effective affinity of virtual SGIs
authorMarc Zyngier <maz@kernel.org>
Fri, 10 Apr 2020 11:11:39 +0000 (12:11 +0100)
committerMarc Zyngier <maz@kernel.org>
Thu, 16 Apr 2020 09:28:34 +0000 (10:28 +0100)
Although the vSGIs are not directly visible to the host, they still
get moved around by the CPU hotplug, for example. This results in
the kernel moaning on the console, such as:

  genirq: irq_chip GICv4.1-sgi did not update eff. affinity mask of irq 38

Updating the effective affinity on set_affinity() fixes it.

Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
drivers/irqchip/irq-gic-v3-its.c

index affd325cc3d4cfd18ada0a5830dec6725d5fd785..124251b0ccbae6bcb6b2d7e7b6c8b448b727733a 100644 (file)
@@ -4054,6 +4054,7 @@ static int its_sgi_set_affinity(struct irq_data *d,
         * not on the host (since they can only be targetting a vPE).
         * Tell the kernel we've done whatever it asked for.
         */
+       irq_data_update_effective_affinity(d, mask_val);
        return IRQ_SET_MASK_OK;
 }