From nobody Fri Jul 24 22:59:28 2026 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (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 926193F4DE6 for ; Wed, 22 Jul 2026 17:25:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784741109; cv=none; b=ZQ3wxuz9kUMVzotY6rwvWegzX8wvz3MELkFFk9lkSAyMGclW/3IpT5fJvxVxMd80c6YuwXeG8N6C6edJ7KSw00PKb/HkDgodCESOPjeHMyOWyp95vozHY+HJQtknIv5AGiG+OjuKyggv9GMA5tMR8/lRw4HXGhep8Jr1ouQAZ9s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784741109; c=relaxed/simple; bh=zWRJXCy2wjVlrC6Ts2vSMU+M0dIL/NNVsL3qymVX1C8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GypjSc2g5xQmL3vm0wSUPCoyAm6X+i3KS9fqZG7T9AXaKY3KFInZe/P8MzB+JNjLg9Ef0REEu951WUo0fI6kcttpUsT4SpSuGNy9UC490xAnNYqOvOgMYW8HuFVAW9sqRLIdTRvH0RVtjoHgqC70/03GmQF8iuyNTq5T/lg9j7Q= 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=ZI1TTx14; arc=none smtp.client-ip=209.85.210.180 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="ZI1TTx14" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-848d21bbaffso352196b3a.0 for ; Wed, 22 Jul 2026 10:25:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784741103; x=1785345903; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=1w/L0JEj1tAoEtTkbuyiqxCj7tfW27Vj36Bhq5Zj1YU=; b=ZI1TTx14I27Jz50NAhBWwfgqwjODBEH0yFMOjHjVy8QsPkDvgat/m/bEeuqjPKOFg5 J92NDjMwPye609/PvnWIZL8Bb7tCRKTwmwNG/jKProFwE2Tl5YiN2g7TRjjzJNVX3Omk 7333heX9woDqPV7DiD5vZjy99cKhUU7NbEVlHIRsIb26j+2V+GYcgc9k4ykyv4NjgwJY IRQYkDdt7W/iWU+fXLK0anJxIOLL2I75TuoTE3s6fnlWvXM+8WtEJBXds2w1nDVhXx36 33vr/+ibGuUxk1T8dla3KDt6RtFzqohmOrZCCkLbxhM/R8YDz1C5IUBDEJ1Xh8e2GDMj uVZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784741103; x=1785345903; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=1w/L0JEj1tAoEtTkbuyiqxCj7tfW27Vj36Bhq5Zj1YU=; b=Y1pDM4bzpdaIP1EimUxmevKvgTHn4ZMpdqQGwJX64UQNwUryWiRuWI5SjpiHEPfZSi XB+eOwY1NMQQgqfHakYAGEylrKGQIdJsqku+U0mCwG1EWJgEFhvKzW+LkzQuPdeO7gZV 1zUTxfruWrbAxw3+VCBhtdQ8Gha12CA1VBB+aIdtYAsxvvSCof3A4dtMpd42wPLnriyt g3rndfEmNw9zefWkb20jaHmKlh+F/LczdQrHpg9ng7Rm+hGjlrRvPolJGGFlhYG0q5HP eeIA4xyOrqJMQpvezcrnbVnMCR9vhl9EfCjWTf2+3GdaOcAMiocpZdKLQ00dbP8u7CMc 0hrw== X-Forwarded-Encrypted: i=1; AHgh+RrL6FP8zUy1lrHLRN1BgzVy6v9SnDd9tuncIzuGCQNV8K8UYDmk0CVfMllR05eDZy5ZQopbWvA0c/9jJ04=@vger.kernel.org X-Gm-Message-State: AOJu0YzT+kFt/FV6JwDjWGULbsLrpwG/TgXFNi0ZVQ0oLOC0neDMf34n 5NHHmdUcdVRKaGN/KJ7IbOKCuakuHHkjlshup0m8w1JIK9pQtKpWDpTw X-Gm-Gg: AR+sD12IPFxIR6vMwEDFIFwsMxncuWvqdaoZqSZezb0ZVSp9U6+xxpGxIy1b6aby+qC KHCMwn0xPELwDMXBXX+wE+cGB/wRkTDpuWvncMs2Pi6aEKtk43DDtFJhUqJGNHJHfg4WW/1OZfy VoquY71Y1gkiplCXz9q0eRIO86fvcMLa/dCDFY1uAMZjWLBekqjYty9fNa7u4BUamabQGPlSSzk lsXajdR8eqa+acRSArFjsYs7PWnRDsJNkwIRg9PSKSVOJSV0g5T+7RKJwMHUihFYwyZ2yGK71Cq Cx1tNhCOv6YzIF1Sxnrl2Km3BSuG3cdFkIwlWuNqLFdiBwxklBoBLV+euKjkgt8EwkoDQ4nXoP5 cimvWmShwnWE9+ouHaPqhjPpen9y/KyTX2XiPCPoKQ31P37JPvUjkAdYS609BUMlFlI6JoSegwF F6G7G93ASGA9fl+N4WrVYqtQCGDDFYn/trpuHzrJw5zt+V X-Received: by 2002:a05:6a00:2e07:b0:848:2f84:730 with SMTP id d2e1a72fcca58-84c294e6a56mr23499585b3a.67.1784741102709; Wed, 22 Jul 2026 10:25:02 -0700 (PDT) Received: from buffalo-ssd (M014013071096.v4.enabler.ne.jp. [14.13.71.96]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84e1757488csm1645603b3a.33.2026.07.22.10.24.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jul 2026 10:25:02 -0700 (PDT) From: Akari Tsuyukusa To: Matthias Brugger , AngeloGioacchino Del Regno , Russell King , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: Yingjoe Chen , linux-arm-kernel@lists.infradead.org (moderated list:ARM SUB-ARCHITECTURES), linux-kernel@vger.kernel.org (open list:ARM/Mediatek SoC support), linux-mediatek@lists.infradead.org (moderated list:ARM/Mediatek SoC support), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b), Akari Tsuyukusa , stable@vger.kernel.org Subject: [PATCH] arm: mediatek: fix secondary CPU boot on Thumb-2 kernels with Clang Date: Thu, 23 Jul 2026 02:24:43 +0900 Message-ID: <20260722172443.534251-1-akkun11.open@gmail.com> X-Mailer: git-send-email 2.54.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" When building with CONFIG_THUMB2_KERNEL=3Dy and Clang, secondary CPUs fail to come online with "CPU1: failed to come online". The address written to the jump register has bit 0 set, causing the secondary CPU to start in Thumb mode. secondary_startup_arm is ARM-mode code (.arm) and, on a Thumb-2 kernel, expects to be entered in ARM mode in order to switch to Thumb via the standard sequence at that label. Starting in Thumb mode causes the CPU to execute ARM instructions as Thumb, resulting in an immediate crash. Clear bit 0 of the entry address so the CPU always starts in ARM mode. Tested on Lenovo YOGA Tablet 10 (Wi-Fi). Fixes: 0cda07001a94 ("ARM: mediatek: add smp bringup code") Assisted-by: DeepSeek:deepseek-v4-pro Cc: stable@vger.kernel.org Signed-off-by: Akari Tsuyukusa Tested-by: Akari Tsuyukusa Tested-by: Roman Vivchar # mt6572 --- arch/arm/mach-mediatek/platsmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-mediatek/platsmp.c b/arch/arm/mach-mediatek/plat= smp.c index 6b0943d95555..9a7c65fc3ae1 100644 --- a/arch/arm/mach-mediatek/platsmp.c +++ b/arch/arm/mach-mediatek/platsmp.c @@ -124,7 +124,7 @@ static void __init __mtk_smp_prepare_cpus(unsigned int = max_cpus, int trustzone) * write the address of slave startup address into the system-wide * jump register */ - writel_relaxed(__pa_symbol(secondary_startup_arm), + writel_relaxed(__pa_symbol(secondary_startup_arm) & ~1, mtk_smp_base + mtk_smp_info->jump_reg); } =20 --=20 2.54.0