From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (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 D0EBA33F591 for ; Sat, 2 May 2026 16:03:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777737791; cv=none; b=tJnABC4zC4bKfuf5rdz7DHVwR566Mq15QfvJe0SeuR3fxIVVqiimks78UEg7vMUtB1+CmP1g9iDBiMXC+PCP7p1cMQuP/fxC85crMvZotfHsO0PC3NcuzcLC21txerTuy0iQ/0/c0OukJj/Uj2ZlKp4VgB+fVBk2opMdi0uLu+g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777737791; c=relaxed/simple; bh=Ok1ufzCTeYazkjxO3+3rx9lPXo88eAJvadgcaHcoRu0=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=fpF3fG7+wvrSIl04Uw0rW0kFfYU5d6Dk8p2MEXvyidb3VhbBg6PBoX9nEzG4ACEUyMvzq2UW8MMTjgF2gCMvRiRthz/DTlOmeN6Dex2ZgCanaacV1iiU+fwOKog+TRvsLltvEr+ptuK/4KQT/SG8mQzXQXeLMKO++e3A1dgbvgo= 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=IduIE2Mv; arc=none smtp.client-ip=209.85.221.42 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="IduIE2Mv" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-43d73352cf2so2490502f8f.1 for ; Sat, 02 May 2026 09:03:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777737788; x=1778342588; 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; bh=RnnlpxRAAVenGzRkq3KQrqAZUEgtZiX35l3RHofXdX8=; b=IduIE2Mv8I6KLSgFhrkLjp+Ip8tAOcOfjTS3xFfBhlKMP6q7D6xHy8wnIWRbbvpHky Pr02bA8TJNWzyt8lFbsaSvuEzMaWVm3eYcahI7SVxkJBU8ibJCNWzo7MzIU7QIKWpBCR ChYQCnwAdFwRhLQ3fXOB44bLtzXEKOWKIcAzCPqEuJIIi4GxCwbUsyjmAv8vhH4ZHTIj W/DtRL2Wb90TO5t+nimAwRDy1n5W5VTojWXVRLschN3K+T5/+NAiWboXfEKL5C42IsxB zF27R1j02xHLVk7bnTn3qMjP4RTlweUoRiFgS/80kFYwrlzSJ5sfmMDHGvbqHOOYq/5n XxSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777737788; x=1778342588; 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; bh=RnnlpxRAAVenGzRkq3KQrqAZUEgtZiX35l3RHofXdX8=; b=jbg8mYdnOAPdZstV70n1R5+AXiiGfJpU8wXPwXPV2KQu+XTNlQa8Wzol89nAdh156L q05mzmOhyj6YDxn2JAkEB5YZ3K3SqIrgaNYUK/f3RH7asM4RIL0zewWu+W1TflHnmkrJ 26kOSTTC8xWGJZkf0/0+u91Xyw4yhD4kBGFc1ahmXUK+dP0Zd3musNKhcNci+fiP4jwx 4rqX4gyZUS+qiXouLmrow9Rywsj0XoppkgthanJzY6JeGxfmvFd1Y2Cksk9yCeQadP+V Z32e/YRlCAEv46MYvo1821Z9yB3yrLO2S4kQX8kIRb6VVo/k3AQQfpb37uxaRGYYVzMF gMHA== X-Forwarded-Encrypted: i=1; AFNElJ/jWX+TptExpYGDzzXuEsEobs6yjBTQIJiNfZk/CpqAMoZ8Ox0pRM8eKIKUZbdDyfzQVyuAzUMB6Ceh9+Y=@vger.kernel.org X-Gm-Message-State: AOJu0YyQywPqRsNF0MgVBDiY3ORITNv5A8xFOL0o4Wi8nHTRAuaL+TdF KvU1jxGT7VofvnTtdbBM0qbGBY0dXe0Jf/n5JRc8rIaPl/RjV/pl80Ez X-Gm-Gg: AeBDietLgiQUoDNucpYF8rO9fz4HO/5sRvZTnG+Mi79o5fPol5ipgaZndokhRicTyty L9yyCzaPz+X0ILH0+3iDLVTS72cpgAvMLvnr78792vT5GTkuAJ3dOEmPr+gZ1xB23/B7pwGZPo8 wXch3xcJuhIperXdp/tAbbxkM+YS34vhr28RDpfIkskq8C3ZQWIDkFxhoaSII6YeKYs+tBCLfAe C935TMBfms2XRpfCj2yRYc5ut7fXT3TeWlJvl8eMWIf3DRDdLt3zUDguIeRpZwYLzLm4DC7fPQH /+BMLwFz2zGZr2qvJbfNlD+E4mwDs3wtjZL/w8IHqn6vzeqg6GOej/zCgefnYQZkSzRBzUrdFC3 wSKblMmOPThiMA6d1NliPzcgLFWZF0v5zCov0hJlO+GGIdA1Qgb11NUIVFQtwF+avhaLaKmZb0u FVdhVQkmzczfegKBoEZH77EydY6cPpUk4eKvFaAPilJrqvXNY+kmLyzjrnQwc4FGwIhIC822gW X-Received: by 2002:a05:6000:4287:b0:447:55b5:d532 with SMTP id ffacd0b85a97d-44bb6ab10c1mr5689376f8f.37.1777737787879; Sat, 02 May 2026 09:03:07 -0700 (PDT) Received: from ST.. ([196.221.137.242]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-44a9879ef45sm13189611f8f.32.2026.05.02.09.03.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 09:03:07 -0700 (PDT) From: Mohamed Ayman To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Andrew Jones , Conor Dooley , Anup Patel , Mohamed Ayman , linux-riscv@lists.infradead.org (open list:RISC-V ARCHITECTURE), linux-kernel@vger.kernel.org (open list) Cc: linux-riscv@lists.infradead.org (open list:RISC-V ARCHITECTURE), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] riscv: cpuinfo: Fix NULL dereference and inconsistent error code Date: Sat, 2 May 2026 19:02:57 +0300 Message-Id: <20260502160301.453029-1-mohamedaymanworkspace@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Fix a potential NULL pointer dereference in c_show() by ensuring the device tree node returned by of_get_cpu_node() is checked before use. Also replace a non-standard return value (-1) in riscv_of_parent_hartid() with -ENODEV to follow Linux kernel conventions for "not found" error returns. Both issues improve robustness and consistency with existing RISC-V CPU info handling code. --- arch/riscv/kernel/cpu.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index 3dbc8cc557dd..e0bc7526861f 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -135,7 +135,7 @@ int riscv_of_parent_hartid(struct device_node *node, unsigned long *hartid) } } - return -1; + return -ENODEV; } unsigned long __init riscv_get_marchid(void) @@ -348,12 +348,13 @@ static int c_show(struct seq_file *m, void *v) if (acpi_disabled) { node = of_get_cpu_node(cpu_id, NULL); + if (node) { + if (!of_property_read_string(node, "compatible", &compat) && + strcmp(compat, "riscv")) + seq_printf(m, "uarch\t\t: %s\n", compat); - if (!of_property_read_string(node, "compatible", &compat) && - strcmp(compat, "riscv")) - seq_printf(m, "uarch\t\t: %s\n", compat); - - of_node_put(node); + of_node_put(node); + } } seq_printf(m, "mvendorid\t: 0x%lx\n", ci->mvendorid); -- 2.34.1