Commit f7c7a1ba authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'irq_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Borislav Petkov:

 - Disable the secure programming interface of the GIC500 chip in the
   RK3399 SoC to fix interrupt priority assignment and even make a dead
   machine boot again when the gic-v3 driver enables pseudo NMIs

 - Correct the declaration of a percpu variable to fix several sparse
   warnings

* tag 'irq_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irqchip/gic-v3: Work around insecure GIC integrations
  irqchip/gic: Correct declaration of *percpu_base pointer in union gic_base
parents acd855a9 773c05f4
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -161,7 +161,22 @@ static bool cpus_have_group0 __ro_after_init;

static void __init gic_prio_init(void)
{
	cpus_have_security_disabled = gic_dist_security_disabled();
	bool ds;

	ds = gic_dist_security_disabled();
	if (!ds) {
		u32 val;

		val = readl_relaxed(gic_data.dist_base + GICD_CTLR);
		val |= GICD_CTLR_DS;
		writel_relaxed(val, gic_data.dist_base + GICD_CTLR);

		ds = gic_dist_security_disabled();
		if (ds)
			pr_warn("Broken GIC integration, security disabled");
	}

	cpus_have_security_disabled = ds;
	cpus_have_group0 = gic_has_group0();

	/*
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ static void gic_check_cpu_features(void)

union gic_base {
	void __iomem *common_base;
	void __percpu * __iomem *percpu_base;
	void __iomem * __percpu *percpu_base;
};

struct gic_chip_data {