lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250904-exynos-mct-arm32-cpuhp-regression-v1-1-5d9e4dd356ab@linaro.org>
Date: Thu, 04 Sep 2025 16:32:29 +0100
From: Peter Griffin <peter.griffin@...aro.org>
To: Daniel Lezcano <daniel.lezcano@...aro.org>, 
 Thomas Gleixner <tglx@...utronix.de>, 
 Marek Szyprowski <m.szyprowski@...sung.com>, 
 Krzysztof Kozlowski <krzk@...nel.org>, 
 Alim Akhtar <alim.akhtar@...sung.com>, Ingo Molnar <mingo@...nel.org>, 
 Hosung Kim <hosung0.kim@...sung.com>, 
 Will McVicker <willmcvicker@...gle.com>
Cc: linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, 
 linux-samsung-soc@...r.kernel.org, Tudor Ambarus <tudor.ambarus@...aro.org>, 
 André Draszik <andre.draszik@...aro.org>, 
 John Stultz <jstultz@...gle.com>, kernel-team@...roid.com, 
 youngmin.nam@...sung.com, hoony.yu@...sung.com, 
 Peter Griffin <peter.griffin@...aro.org>
Subject: [PATCH] clocksource/drivers/exynos_mct: only use IRQF_PERCPU flag
 on ARM64 SoCs

This patch addresses a regression reported in [1] whereby CPU hotplug now
fails on little CPUs (for reasons that aren't fully understood) for Arm
32bit platforms such as Exynos 5422 used in OdroidXU3/XU4 boards.

Note: This patch makes an assumption that the exynos_mct driver is only
used on Arm 32/64 bit SoCs.

Fixes: f3cec54ee3bf ("clocksource/drivers/exynos_mct: Set local timer interrupts as percpu")
Reported-by: Marek Szyprowski <m.szyprowski@...sung.com>
Closes: https://lore.kernel.org/lkml/8c861182-7e90-4bbf-ac04-173d59f5af69@samsung.com/
Link: https://lore.kernel.org/lkml/8c861182-7e90-4bbf-ac04-173d59f5af69@samsung.com/ [1]
Signed-off-by: Peter Griffin <peter.griffin@...aro.org>
---
Hi Marek & Krzysztof,
    
Can you test this patch on your Exynos5422 based boards and see if it
resolves the issue Marek reported of CPU hot plug failing on the little
cores of Exynos 5422 based boards?

Unfortunately I only have gs101 based Exynos hardware (which is Arm 64 bit
SoC) to test on. I can confirm CPU hotplug is functional on the little
cluster CPUs with IRQF_PERCPU flag on Pixel6/gs101 though.

Thanks,

Peter
---
---
 drivers/clocksource/exynos_mct.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
index 62febeb4e1decec7f5db104db395884824563915..91d79b73a96a7e8a354d803c2b497bcde92af8d8 100644
--- a/drivers/clocksource/exynos_mct.c
+++ b/drivers/clocksource/exynos_mct.c
@@ -532,6 +532,16 @@ static int __init exynos4_timer_resources(struct device_node *np)
 	return 0;
 }
 
+/*
+ * For reasons that aren't fully understood IRQF_PERCPU breaks CPU hotplug on
+ * little cores of ARM 32 bit SoCs like Exynos5422 used in OdroidXU3/4 boards.
+ */
+#if defined(CONFIG_ARM64) || defined(CONFIG_COMPILE_TEST)
+#define MCT_IRQ_FLAGS (IRQF_TIMER | IRQF_NOBALANCING | IRQF_PERCPU)
+#elif defined(CONFIG_ARM)
+#define MCT_IRQ_FLAGS (IRQF_TIMER | IRQF_NOBALANCING)
+#endif
+
 /**
  * exynos4_timer_interrupts - initialize MCT interrupts
  * @np: device node for MCT
@@ -602,8 +612,7 @@ static int __init exynos4_timer_interrupts(struct device_node *np,
 			irq_set_status_flags(mct_irq, IRQ_NOAUTOEN);
 			if (request_irq(mct_irq,
 					exynos4_mct_tick_isr,
-					IRQF_TIMER | IRQF_NOBALANCING |
-					IRQF_PERCPU,
+					MCT_IRQ_FLAGS,
 					pcpu_mevt->name, pcpu_mevt)) {
 				pr_err("exynos-mct: cannot register IRQ (cpu%d)\n",
 									cpu);

---
base-commit: 4ac65880ebca1b68495bd8704263b26c050ac010
change-id: 20250904-exynos-mct-arm32-cpuhp-regression-14f321e4a591

Best regards,
-- 
Peter Griffin <peter.griffin@...aro.org>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ