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

Commit 4df7f54d authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag



Get rid of the handler_data abuse.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 71466535
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -70,11 +70,6 @@ static inline int gic_irq_in_rdist(struct irq_data *d)
	return gic_irq(d) < 32;
}

static inline bool forwarded_irq(struct irq_data *d)
{
	return d->handler_data != NULL;
}

static inline void __iomem *gic_dist_base(struct irq_data *d)
{
	if (gic_irq_in_rdist(d))	/* SGI+PPI -> SGI_base for this CPU */
@@ -249,7 +244,7 @@ static void gic_eoimode1_mask_irq(struct irq_data *d)
	 * disabled/masked will not get "stuck", because there is
	 * noone to deactivate it (guest is being terminated).
	 */
	if (forwarded_irq(d))
	if (irqd_is_forwarded_to_vcpu(d))
		gic_poke_irq(d, GICD_ICACTIVER);
}

@@ -324,7 +319,7 @@ static void gic_eoimode1_eoi_irq(struct irq_data *d)
	 * No need to deactivate an LPI, or an interrupt that
	 * is is getting forwarded to a vcpu.
	 */
	if (gic_irq(d) >= 8192 || forwarded_irq(d))
	if (gic_irq(d) >= 8192 || irqd_is_forwarded_to_vcpu(d))
		return;
	gic_write_dir(gic_irq(d));
}
@@ -357,7 +352,10 @@ static int gic_set_type(struct irq_data *d, unsigned int type)

static int gic_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu)
{
	d->handler_data = vcpu;
	if (vcpu)
		irqd_set_forwarded_to_vcpu(d);
	else
		irqd_clr_forwarded_to_vcpu(d);
	return 0;
}