Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90dc7122 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

irqchip/gic-v4: Clear IRQ_DISABLE_UNLAZY again if mapping fails



Should the call to irq_set_vcpu_affinity() fail at map time,
we should restore the normal lazy-disable behaviour instead
of staying with the eager disable that GICv4 requires.

Reported-by: default avatarEric Auger <eric.auger@redhat.com>
Acked-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 4f8413a3
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -177,6 +177,7 @@ int its_map_vlpi(int irq, struct its_vlpi_map *map)
			.map      = map,
			.map      = map,
		},
		},
	};
	};
	int ret;


	/*
	/*
	 * The host will never see that interrupt firing again, so it
	 * The host will never see that interrupt firing again, so it
@@ -184,7 +185,11 @@ int its_map_vlpi(int irq, struct its_vlpi_map *map)
	 */
	 */
	irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY);
	irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY);


	return irq_set_vcpu_affinity(irq, &info);
	ret = irq_set_vcpu_affinity(irq, &info);
	if (ret)
		irq_clear_status_flags(irq, IRQ_DISABLE_UNLAZY);

	return ret;
}
}


int its_get_vlpi(int irq, struct its_vlpi_map *map)
int its_get_vlpi(int irq, struct its_vlpi_map *map)