From nobody Sun Apr 5 16:28:30 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D8533D1701 for ; Tue, 24 Mar 2026 16:15:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774368959; cv=none; b=btsfF+WP19tWv1Ipfy0062kQ69PeepgbnUpaakkM/gk/1by3sgnMe4cxfux7/HOFerMH7wpKhj4slAln8nuZMkKHSoL4tt42PvArxhM+FBQ02MoWv6Yj7xLTJvnWd9B1YyZayhVfFMKoZHsuXICJsnmVjFw8gFxLx6GHCiFBVcs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774368959; c=relaxed/simple; bh=guUodUPfyIYJD3uUhKAOym395Cd+DN5DaHgYUGu7Y08=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=ppsw6TeQJXGZXVmuglu/SIdiPfXQSCCgmxnG7xkXtuRYzdphmsDmTlgESMcqzkY0P3z0tmZCDab9OpnndBiuSQdq3qV6mxXjUBbaZ4lnGTcVh2Ko/4+jabuTvoBODTJ32wkGV0TQVvqZbL4Cl6MupyyyEWHSrM0x9C3sK57b43Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DRdkaxvF; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DRdkaxvF" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-486fd3a577eso36157775e9.1 for ; Tue, 24 Mar 2026 09:15:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774368957; x=1774973757; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=WkF+G7ZLDGMYZ75yYOuw4BX1yBIExkP4Fuqn3Z2McIw=; b=DRdkaxvF+Llpke96Q9L/XfsIV4rXl8FGLTiJgcSlNdXWczKaeM0yoY2FdAlCj6wp4Y rvCZoF1ULgbpwQBRNAJ8beVPkkqNjPTuDAjvAxdzFxu4nJDjh3+HwCU25QiM1sl+kh0o uNUbrZuA+f8ytMITw6sSWmWpmFiqi7uXAdFu50OB2utuqJd73n8PnfKlouBIarBP3fuK 5Nq/eI75DQ7T5TgqHWAqp/dxHph2hXtETRHQSzyaR/zKsvBEi3O4M27GVgGx/w1/ljJt IStL35PryZdh+XFnf062Zz8H7EtJCxaOI1e4LRJ+6nnl9OoXnqhxqo3N8ILFirz2nVg2 fR+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774368957; x=1774973757; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WkF+G7ZLDGMYZ75yYOuw4BX1yBIExkP4Fuqn3Z2McIw=; b=a0/SI+zOVpgZwebsbVweBXyuzYDnVFGoy4OXhK1fWZVouT0HL66YzFbxcmlgW2ZIlU 4wtMwdMGM+/PVlEAGWe8+iaatR27mfvCPUlcoj+I3m5ZIxGx+EMm6w1o3jTurz2Fo5JK ofA+HPmQc66NdSKaMbP+1HJQT4FYSNLo7rgS+/1reiaoY+6d7GMj4TVlP3P9yxmjiNNB Abei5ui7UK0agIyyN2HGO5w7fswj6hsNOvs5tsNORWogDASEr3SJ3PnGLbjJhATubpSl O+RihQYQoszbrc9v56HINaIKEPSBsXvthYoy80NiAwEhUCd/MjOsBR0Vci45dYZT3sQ5 yENA== X-Forwarded-Encrypted: i=1; AJvYcCW5DkX1gLY5oeZQMdZeUjAKu/v0gvhqNzcUiOGqHL8RpA6DuSi+OszMY9dSqTPagMmvP6SvJUCe9E9EBK8=@vger.kernel.org X-Gm-Message-State: AOJu0YyEl9kzFgPhSM29++2/ilatEP0SHvHNN2NbmZ8Vq8zjxQ5oSFss qZcAHY/NFDVOsVTx2vT5a4CGPNuLWfqO+1Kau7ZkF29/dE77rm9SUdX6 X-Gm-Gg: ATEYQzxzWeanXRijbWixB71QrZjekXmBRtXn0EHqWk2oEsCHpH1PSQL+u0Tvc1E6gsk Tmv78Dbc5SnAoB3cekWv1ajXC047vot48rRsMFii3Rt/9QFeTPwbGZXyE3GF7/IKI6cDw8L7EZi 0QyNcQHZMzO1urzTzfvF/JLkDRAW/SLyxu10x4n8kLFpt9pQESh6rJYFwLicF7KeA4DkgONeVWX hEwZ5nLHTNjn3NzZXGhSLSUB3jGhqqrcpb1BW0htSig9ESTbgR6qxbg58AXPp4NXBVdg+wNE0GN 52u8j39i0oK7qdcsY+EnubDoNs+loB9jE6L3J9LgCGsTwRbfR6Bg2cCTfm2Xi7Ds4a5US8gSw2V 9F0EL95h/zinRwU2MuWIlx/3MW86u5Hak5ogooThdNb+frphsFS1P//VyRiFC9iyK46BI+vqXma zaq9RAJFr2K6fJh8FOfwnL5PPDLEvQfysSeaqLQp5926W6vfDiubcUik0U X-Received: by 2002:a05:600c:4685:b0:485:17a7:ba0d with SMTP id 5b1f17b1804b1-4871606cbcemr5072595e9.32.1774368956585; Tue, 24 Mar 2026 09:15:56 -0700 (PDT) Received: from osama.. ([41.46.242.53]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487116f173csm70721775e9.2.2026.03.24.09.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Mar 2026 09:15:56 -0700 (PDT) From: Osama Abdelkader To: Catalin Marinas , Will Deacon , Mark Rutland , Osama Abdelkader , Ard Biesheuvel , Breno Leitao , Ryo Takakura , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] arm64: panic if IRQ shadow call stack allocation fails Date: Tue, 24 Mar 2026 17:15:41 +0100 Message-ID: <20260324161545.5441-1-osama.abdelkader@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" scs_alloc() can return NULL when vmalloc fails. init_irq_scs() previously stored that NULL in per-cpu irq_shadow_call_stack_ptr, which IRQ entry would then use under CONFIG_SHADOW_CALL_STACK. Match other SCS setup paths (e.g. SDEI) by failing explicitly instead of continuing with a NULL pointer. Mark init_irq_scs() __init since it is only called from init_IRQ(). Signed-off-by: Osama Abdelkader Reviewed-by: Breno Leitao --- arch/arm64/kernel/irq.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/arm64/kernel/irq.c b/arch/arm64/kernel/irq.c index 15dedb385b9e..b32ed7ef8e00 100644 --- a/arch/arm64/kernel/irq.c +++ b/arch/arm64/kernel/irq.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -32,23 +33,26 @@ DEFINE_PER_CPU(struct nmi_ctx, nmi_contexts); =20 DEFINE_PER_CPU(unsigned long *, irq_stack_ptr); =20 - DECLARE_PER_CPU(unsigned long *, irq_shadow_call_stack_ptr); =20 #ifdef CONFIG_SHADOW_CALL_STACK DEFINE_PER_CPU(unsigned long *, irq_shadow_call_stack_ptr); #endif =20 -static void init_irq_scs(void) +static void __init init_irq_scs(void) { int cpu; + void *s; =20 if (!scs_is_enabled()) return; =20 - for_each_possible_cpu(cpu) - per_cpu(irq_shadow_call_stack_ptr, cpu) =3D - scs_alloc(early_cpu_to_node(cpu)); + for_each_possible_cpu(cpu) { + s =3D scs_alloc(early_cpu_to_node(cpu)); + if (!s) + panic("irq: Failed to allocate shadow call stack\n"); + per_cpu(irq_shadow_call_stack_ptr, cpu) =3D s; + } } =20 static void __init init_irq_stacks(void) --=20 2.43.0