From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (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 6A031366DB6 for ; Sat, 2 May 2026 16:18:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777738691; cv=none; b=JB0EEsJmgpzNED2hh/OcwrZDnQl3poGjbvYnoU7F0TzMWriN+wbhYgqWStEe9hjb34a7WO/q5r+wHAe30ZBsiYuodNNxwZ+6sWD6TaX+tRelQTcdXafVBLnBihVtByBBeFwXTvLoYcpwIwr65TUFOaGDSU3H5iPkXB/DLKWwQeY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777738691; c=relaxed/simple; bh=3Bjcod8hRhDNd3QdTBdCL4HroSm44ztAT27tAOhn1pQ=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=nYtUT8sRvIIqYI6fv+aoaUxlFa4jwBg19m9F9NfGgR1qTJVxROYDTGb9ga7rbaeILO7md/Yqz/6HWGuoKbLXImO5f/yhwVWpgjdidAnc0ue69t69Z8lqFf66B02c4k/lii655gOsDi6Bs/5pYsIHlONr7IQObnBIzwuzpFHkrAQ= 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=fjvvw00i; arc=none smtp.client-ip=209.85.221.45 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="fjvvw00i" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-44c4cc7c1cfso278845f8f.0 for ; Sat, 02 May 2026 09:18:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777738689; x=1778343489; 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=gTnLxrweHacdIUWs4xS8Vhtx7JA+Z2sF9+LBTQ6TbAc=; b=fjvvw00iWtFZtE1fS8NrPF94zOhVYpX6FBQnPPrbDIT1BzF1i1xH0MouSqYUzoNIcr IDhUMLeaHWg/DLcBqhpAWdVMb4N/0nKnjJcz2N1ZzTBZ1gU5lpkmjLgHSJMHZc4ADwPJ 9rILFbCrtWRSC30rFJ7C9mR82TlYkSIBh4wNbMJYTFn09Y6Kip25EpT+guA3fhI8Npp5 cBl0E/L45BDLOBIiHloRiWn+7bP6pO8vnvJrasqrVNwRRhd8Gc5TnCApgwv0kMB+yEQa Wuj7OvPNsJTH0iFaqQ+af93gJpyES2Pvi0PYDKTgZZw7akd3qIIhSpHd1PISm7pTrN1l IKCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777738689; x=1778343489; 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=gTnLxrweHacdIUWs4xS8Vhtx7JA+Z2sF9+LBTQ6TbAc=; b=lDBnZ9LNduKpKIk+8/aGNNtyp6Ylr56c+zWiXXYL/4roF2KLz9Iz5zwdf3NMEbIGCQ yaPksJiJ2F8enz0G8KAqFn6/3kJH5vWf3W+6NwBexi4N7ae/h7vCk10tYsmt4z3YP49T TpXgn6VLU7rNITV5+ig/L+OayRSVsFiU6U/jLJaZZISYaKM1FJbmHl+PATvXbnuFf7gR 56OU643cuO9cpQKOXFAOy6gC8cat/U/MZWLp4Tm04OsublhTF+M2yu78aYvbVGUVhdRs JqxGoueh76QbBcDSzboVA47Ksz7OKq2AS1Nns6qlgn8RXS1s21xJQ5G5rD/bcpCvqmuo eO/Q== X-Forwarded-Encrypted: i=1; AFNElJ/34k4uJ+ybQ5sAMewAVoG5Hw3yR0uU2CEYquK1SBXy1eDilOy/Gxr35TgR3MKiZNCP9cmzPdd+pA7ZA6Q=@vger.kernel.org X-Gm-Message-State: AOJu0YyRaxrNghS9+RN5SwpghwjH4gPMEMGxKYbEWEUcVqcfd1hPFLeQ hBmzdjTemJmLRH6pNot5ZSuS7xwsukTfE5xKmExJgNe9NZHnlGlw4AwB X-Gm-Gg: AeBDievmaxphu1zto0Jt5Qf4SsIHpvXxhJ6u/iJMb1sjsj1KlZfJvlKZxOO1JYm0Ctu 4COZ3NGq7S68ISWxuppPCmxSc0tsKBl2CLximeWuinJdaAmh85/JJbqhwlayxYWr9EJaseo/BFm 6g8G/Gf8ePpMvgyCu6Jv2847qnAknOLsocgfgF3MN2RtJDiVBzBwmiz87ToRfV5al/E08alGeJ+ PXHg475CSiVXzU9DDwvfucNFILfNqSIvwdePRV0PjgF2PtwWyPH7P87CpLe503tDboaP8jXVLfG 3la4IxIfFyyn/0zmr9Nr4l9l1kLFxaiW+7oW315EKxjskrac1cDC+s5YjG6XaOW4Q+lbEMscF3X 7poOXKUROQvxT2x0nYlA9Uj4cLZUwdP9VgsdLesaMLAsa3QE3dJr4AzoBq7p7ph4bgF0e8BPD9q mmZFZc60ErRDMycxzuJWzoDu9xWzZhQ4QkgO2HuaW9DvW4U520L+5RHSi/EtJ50b4760scdqN1 X-Received: by 2002:a05:6000:2489:b0:43e:a9ba:b194 with SMTP id ffacd0b85a97d-44bb5c43349mr5844288f8f.34.1777738688650; Sat, 02 May 2026 09:18:08 -0700 (PDT) Received: from ST.. ([196.221.137.242]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-44a8ea7d0e7sm12138842f8f.3.2026.05.02.09.18.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 09:18:08 -0700 (PDT) From: Mohamed Ayman To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Mohamed Ayman , Andrew Jones , Anup Patel , Conor Dooley , 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:17:58 +0300 Message-Id: <20260502161802.515547-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. v2: Add missing Signed-off-by Signed-off-by: Mohamed Ayman --- 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