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

Commit f842ca8e authored by Marc Zyngier's avatar Marc Zyngier
Browse files

irqchip/gic-v3-its: Check that all RDs have the same property table



If booting with LPIs enabled, all the redistributors must have the
exact same property table. No ifs, no buts.

Tested-by: default avatarJeremy Linton <jeremy.linton@arm.com>
Tested-by: default avatarBhupesh Sharma <bhsharma@redhat.com>
Tested-by: default avatarLei Zhang <zhang.lei@jp.fujitsu.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent c6e2ccb6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2029,6 +2029,15 @@ static void its_cpu_init_lpis(void)
	val = readl_relaxed(rbase + GICR_CTLR);
	if ((gic_rdists->flags & RDIST_FLAGS_RD_TABLES_PREALLOCATED) &&
	    (val & GICR_CTLR_ENABLE_LPIS)) {
		/*
		 * Check that we get the same property table on all
		 * RDs. If we don't, this is hopeless.
		 */
		paddr = gicr_read_propbaser(rbase + GICR_PROPBASER);
		paddr &= GENMASK_ULL(51, 12);
		if (WARN_ON(gic_rdists->prop_table_pa != paddr))
			add_taint(TAINT_CRAP, LOCKDEP_STILL_OK);

		paddr = gicr_read_pendbaser(rbase + GICR_PENDBASER);
		paddr &= GENMASK_ULL(51, 16);