From nobody Mon Jun 8 09:52:04 2026 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (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 1FEA324DFF9 for ; Sat, 30 May 2026 10:17:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.218.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780136273; cv=pass; b=oLPgh4P4DHPrVo7+L25Ll+bfzmzLtyi9Nhb+0zFhd1KjeDphAEj2/PQXLSGDdQYuMtgY31a4nLS9yad7aSPXGXR8q67QtzE5rqbIviN8z3lbSmVF2e7KoIdcKlEHf5eD+F3AkGSA/z1RHCtMWt8P9pGCPOSvoNBEQNPslLrCnJQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780136273; c=relaxed/simple; bh=kWuZq0NklkILeqms3Zwd6VPUlfPr+z6iXJo1qi6h808=; h=MIME-Version:From:Date:Message-ID:Subject:To:Content-Type; b=V/wGlRe/s8klG0oYaVIaX4Icj49UrZrLTy5i8IJDAtd2UxY8Hss5ebjE9q3ADlrPA2/BT+ZU7UlkZx1YVUg9MbMb3f1HbF0DoMkNpStD1sy93uuUzDDu2AQQH+iuybYOWYj22HumItGvJvZ9vgHPekcNm/z5sp38EOfvu2VaUd4= ARC-Authentication-Results: i=2; 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=m7c2AyJD; arc=pass smtp.client-ip=209.85.218.53 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="m7c2AyJD" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-bcd0111ea98so2044568666b.1 for ; Sat, 30 May 2026 03:17:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780136270; cv=none; d=google.com; s=arc-20240605; b=elxpj8Nkaw4jn7z4lR3BICd199AdeQLdaS6k1Chl+gMeLW+j9AqSMCAEZnBoHVpcNA NaQ8b0hDrsoDRn6C0Pk7Lmi8cYAct2PLEMt/ZbNBCnCm8+aa9cviAU6NvgwoVoz3PPaN NGFCFSmPsuejRGdEKw9tFFTMrMKkBxZSAsy3+jykbqRloFompKRuMpPLH1BQhtdboP42 P4YTGYNuebpZMuGhg2eSAhbHPcqYKysmrI5ATfdgsBexTa+1DxxRUrgSwLSGEFICMftp WL8M/JFymfAyfSNgafut19aXP4C24MamOllJT6lV4a0JKBwzFGj6p8ptYeYFFOJ5TGus Uv8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=1PbLr1gEYk4kp4dkTw7SOTXuGRGsi5XnZq3F5T8LJWM=; fh=eI8lkDetslZ2YwbG88A66ikvIIVEokPkVG2rQzHICrQ=; b=CpcRjZoVrIops5uvPBEn9Hhz7i/Pa9zV8FbRmzhn/uEVlT0yWlGq4GfPLF3+fxU84x YWUYTlpQHFoAnsDkScnwAL5ve8AiyjRt/edcN6jKF43FLhAho7v5u4PXd4eqMpkXdDtX AXciZ+aqb5+4SIoU+Rg2LiLUxDbUw70qvYasqYIVrBVR9utuskx84A1vsu1Ya6s5GY3n IrQMPUz8LE3vuxvmSkBE5ZPdvGZeephL1Z1GPXpQLKOeuOBWvWNWwYm9+a+zvYf26uiY AF1q6vGm0qfAjACqqWcG/OsvH1bc5eyEjNnU5sp5yM3zo977lkTyLZJrl7ZliqlIjILS ZT7Q==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780136270; x=1780741070; darn=vger.kernel.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=1PbLr1gEYk4kp4dkTw7SOTXuGRGsi5XnZq3F5T8LJWM=; b=m7c2AyJD53kyUe8321PqpnVawCZB1O/WuLmOJZaHM0udVGOkdbl549wwNka0Y2NeNf kl4QLqnxlhuGXXSCc3i9R43TL0cvBll2HTEKma2ovQgYSxJAPux06K+hThMgS8O3NdMF NyTCOGm15NtNhUU6W4+cK4wM+tvzjHmM0vqs2dwdGfTjfSc4Tq/dNSvZlwEhPp8ldv/i J5km5WRhBTYHZB/7p677m4UHGWiTTBbQN+6uwCVbvpNJ/UX95HuPIwPndrYC8o2Ht4/g ezSByBYEYfnCumEFBg/xOjcKGxGR+/Dz1HSuAL0V4WTccJAaxzvdkJaqet7V7qu7FSIJ VrVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780136270; x=1780741070; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1PbLr1gEYk4kp4dkTw7SOTXuGRGsi5XnZq3F5T8LJWM=; b=bHW82WGuA5lxU6uCGTanK/nl6taSIjUDkNVF0UQaPWcKkHU3T0G8FwpkvWInEVcqBr i2u5rkt69b105kg3kuDz2dNJ1C6DFdVTZplbgLJcA+SZb9OIRfapeJTMP6zvLdkbgd9J V8PV8fgfgxJkATeArS5vai55aLkxWdbZ8bjxT45I0/vQRjVDPn067Ae9XNVq1ADmi01q py4nNl/pCctsyReiRbRF2TjAT0CS5zej1OM8QRT/wMcb7FrfmW/6Y4SIdmZZ8jKX6Zfp p+uobjpkKHXxzryi4VLZfAEAxsyWl59zZ8jZcOHj3Znkfh4JQpaqURP2mCWFN9oLx/jt fTsA== X-Forwarded-Encrypted: i=1; AFNElJ9R9YNGZ+/CO8bpTJWoRzGPtb3R053KJ8Hrim48LMiXGI4V0RRyhgbhSrUjBTlh2btXXom72RiCAw5OIHc=@vger.kernel.org X-Gm-Message-State: AOJu0YySt5SFuky5ZyDGl73OksJAlVVIuIHiXqg9g4Ry/YcBM7nEgkm9 8QwPLPJ0qK/YPcYGfcBzNZ02WokCIFSQZ+v+tTKKx8MfUc/wBWeEQppKc0nrkgYLf7wkiwVuPck pni/40Gxq/37SqmsZwGgUofxkpsthKV8= X-Gm-Gg: Acq92OGmkL6E+PH5iQ5xLJsf3JewmJy5njfIdT4pmWdbNMMyVLO4CEEwRpdc2ag07Li 6ok16+NmEPtBcbHGKhRaKH/1xDFDMatUQton3EPuQEPqmhSe89WK9enELqHda/HCiIc0zWiRtVt 2mBqkmN17dDzQqKXjj5bfE0kgwYWNkVGsC+yOnl4SNuAhMNiFiLO1jeXstnppwQIVi2V+LZEGBr Qjhr8DIzUy5zWD/MCzq05tr6xxTyhomYCRYPQJmPMUXzbsV1SDtN9R0RvkVaXNuSBaC3wn/OK1u OxQfZgVaoHKBu0p7GQ== X-Received: by 2002:a17:907:d405:b0:bd5:2ed4:4ef6 with SMTP id a640c23a62f3a-beab01dd693mr152380166b.19.1780136269957; Sat, 30 May 2026 03:17:49 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Paul Sherman Date: Sat, 30 May 2026 03:17:47 -0700 X-Gm-Features: AVHnY4KkHicHWQzEXzDwjBc_zs-TuLc6bCYU7qzXxPJtRcx-H-m1d-4vpUJEtfM Message-ID: Subject: [PATCH] riscv: smp: set CPU 0 possible in setup_smp() To: linux-riscv@lists.infradead.org, palmer@dabbelt.com, paul.walmsley@sifive.com, aou@eecs.berkeley.edu, sholland@gekkio.fi, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From b0162f20c370dce032c59be77c5820a3c7f2f891 Mon Sep 17 00:00:00 2001 From: Paul Sherman Date: Sat, 30 May 2026 02:49:56 -0700 Subject: [PATCH] riscv: smp: set CPU 0 possible in setup_smp() setup_smp() calls set_cpu_possible() for CPUs 1..nr_cpu_ids-1 but never for CPU 0 (the boot CPU). x86 handles this via init_cpu_possible(cpumask_of(0)); RISC-V has no equivalent. Without CPU 0 in cpu_possible_mask, rcu_init_one()'s for_each_possible_cpu() loop skips it, leaving rdp->mynode=3DNULL. rcutree_prepare_cpu() then dereferences NULL and hangs. Exposed on Sophgo SG2042 (64-hart, 4-NUMA) with Linux 7.0-rc2. Fixes: a4166aec1130 ("riscv: Deduplicate code in setup_smp()") Signed-off-by: Paul Sherman --- arch/riscv/kernel/smpboot.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c index 601a321e0f17..71662f6bb1db 100644 --- a/arch/riscv/kernel/smpboot.c +++ b/arch/riscv/kernel/smpboot.c @@ -169,6 +169,15 @@ void __init setup_smp(void) for (cpuid =3D 1; cpuid < nr_cpu_ids; cpuid++) if (cpuid_to_hartid_map(cpuid) !=3D INVALID_HARTID) set_cpu_possible(cpuid, true); + + /* + * Boot CPU (cpuid=3D0) is never set possible by the loop above. + * x86 and arm64 call init_cpu_possible(cpumask_of(0)) explicitly; + * RISC-V was missing this. Without it, rcu_init_one()'s + * for_each_possible_cpu loop skips CPU 0, leaving rdp->mynode=3DNULL, + * causing rcutree_prepare_cpu() to dereference NULL and hang. + */ + set_cpu_possible(0, true); } static int start_secondary_cpu(int cpu, struct task_struct *tidle) --=20 2.53.0