From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8670422D4E9 for ; Fri, 7 Aug 2026 00:38:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786063113; cv=none; b=ALznMbl3hLsOn5+BnHlFetIfIJ6GezGKPoiz0OPukwg1aYNKtHbY/V8UL6MvBsBh/8xq/Nqs4AHK6RDm8rkVNYN6Zuh0bHTrmIYj2IEHc07HxD2G0P7GwDOgMHomRoq93xyoZCpxSZETS8UgiwcrWCXJFn8ot/U6QTSUBFi37PI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786063113; c=relaxed/simple; bh=dsWMhdIrqSK6WxQqUiMqdWFZLYDnTD9M2oM1sYypADk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=BxdJbjHBjFp1ULdmK+7wT+M41bzWXoD/xqNZiTyOVd4RZPntPEO/rsZmNn86Uajao5S6RwVgBiTO6NBjWn8rF8C9j8pHugwzjZQ7O5NnPiVR211sFwmwaOxVJ8K4sWsBa+rPE1jxhKSJU/ynJj/VGnxGR+4rjjOq8gXtlJserKI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=lWxfGMft; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TITZg+4Z; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lWxfGMft"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TITZg+4Z" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6770GjCD3251822 for ; Fri, 7 Aug 2026 00:38:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=qcppdkim1; bh=JY6AEkRNUFU/eSw3bdP8Dhft bSXAEXPlKY7ke5titbY=; b=lWxfGMft2Mxn5rO6npfQrfmWwzbDbl0mNP4X/Gv2 GQPgKfxuuS5jHPPG8KM2tHlIRaHVqQsD8uW+T732mKnonUdLtisy0mc+t4YbVY8C d1/SeNxamkuw9I1+8laLfaaZ0iqIKfx+EaRdVJ8Zq11TIIbSfK7G7HXPUgfrILY7 Ts2sSV8YGNcDEksPqZBWaceYqlXgN2ERMlhMTRfnFNrT6NNK+SuMzCP5ogPqi264 Uz/JpEKkiRmZIM1IKk+LqbKW/QYRxgJym2r3wjgXVLSAvwS2CxP3rc2jFk7Uio6+ iQ9m9Kfc6EJETQ6JZMGZIQzfDy9M1eFEpExDbof2v64Nqw== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fvy6k1h9k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 00:38:30 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-cb5ea36f969so2844470a12.2 for ; Thu, 06 Aug 2026 17:38:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786063109; x=1786667909; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=JY6AEkRNUFU/eSw3bdP8DhftbSXAEXPlKY7ke5titbY=; b=TITZg+4ZRe3CDND7M5ejwEANPS5wn46rBf1ASzUejOcriqTBxopAFUE86J3G/Bf2zc k4uJIHKdbuXRO3Q6n3iggCh3aA0CcU+Xs/4jdRmyhGhThGMoC1SoIh6UZJdmBnjAANdL RCHEwjoC7hPSIWDb1u+tZeWLLpSQgZnAokHkvCu53CXzDBOzpGvCsijbyHwkb/rYv05Y upBw4SQpCRHL3YfLo641NJM43LvpHV/OX+DjsvOzY6zZm2rdtbESBKW8jvfLY+N0VVCP d5gm8KTbkjVahJ5Xh13Cyj/miTfx1s++cGOLizMqQjmrxAVbHXOrEZ8re8XVekGfErmz Kv7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786063109; x=1786667909; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=JY6AEkRNUFU/eSw3bdP8DhftbSXAEXPlKY7ke5titbY=; b=KiGeWvT3CuDQF+2NDVGZOvpm/XU+rWXDw8Cn9SjFzf6WJcicaDs0g862vB/39Rmp2H TcjsfkBvq5ZJYPSR72JQjfypMpB8dDCSHYZjzi5kHDEKSD5RE6d99EalThL/TSzUSaGN bH1R/Vbj4GJo+t6Ki7PA+Xf3p73LU0DqXCq2SQc2UajXAm2zH72nsnylTUZ6OHTuivPS QOJ328stMpeH6kczR/EOfLkYag21iLgqVsgqZiuII3hKrJYGnXq62kkUugOe6CBoVn9j uQXLnI6Rh0XIO+ecQOTTeNS0QvlHenUiCd2yRRcCfpmgeR5hn4zvgEaOS/NemJ7zNj/S 1vnQ== X-Forwarded-Encrypted: i=1; AHgh+RorLMOdHOapKUsraeWfsym35LVevJ9LelsCH0Hmh4aJzkrDCkaMCufuwKn3LqSohrJB2jEUr+g6qZDy344=@vger.kernel.org X-Gm-Message-State: AOJu0Yyg2yBSHY8yrKes1GyZMxKqZSSFF2Q2PL5XFOY2VwiLRSn5XGAr yPRMMDijGvfhpQXpQCs2xjOS0rmpZcY/4CI0V+wF1pB5CxhAWwShI2++ENHAUEhcW6pGT1jfEXD UzcXvP3V/6zPdcKW59u5macQnw+oZ4OgH2di5zx9oOA12+daPXJEz1Hzb+SY4Z/F8xo4= X-Gm-Gg: AR+sD11pwwI5mRKwePwWDt21ikygwWnwfbkpoOqiZ7D9Bk5k54TQeKL+Sqy6uc005DP G1VI0GgkNh3FVNqUBT95Jezl2G1OmVRa+T44GotvjY9FgWSD8Gouos6/sd72p61RzC15z0QygeT WM3xBihVolEOv3XjwStS0rJ8icpHUOs+on/ExBTtjka6G3IYdUYsJ6XtlWKFOFcNOF7fkl7oJcg ttWVPhnDgVkSxVLAiBrhb+xt5XczvC64xhhi2GzkhwTpXc1NprP892ZUgpCFtv7QNNYM7XaRiVx qr2TLI6kcnRT5ysJbu658PZRbuam/jj6Q+Iw8GBt08Fq9li2bAnHaKze1XtUsmAuy+KV6/qyKt/ Vc1G8GwB5kQR+o87cM285qTdzwAu4oSSZZ0dceoVx+fZWMxTvpQ== X-Received: by 2002:a05:6a21:139a:b0:3c3:c07b:5322 with SMTP id adf61e73a8af0-3cb8602693bmr24170262637.34.1786063109203; Thu, 06 Aug 2026 17:38:29 -0700 (PDT) X-Received: by 2002:a05:6a21:139a:b0:3c3:c07b:5322 with SMTP id adf61e73a8af0-3cb8602693bmr24170219637.34.1786063108809; Thu, 06 Aug 2026 17:38:28 -0700 (PDT) Received: from hu-ashoraj-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315be86e90asm648336eec.3.2026.08.06.17.38.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 17:38:28 -0700 (PDT) Date: Thu, 6 Aug 2026 17:38:26 -0700 From: Ashok Raj To: Kai-Heng Feng Cc: rafael@kernel.org, linux-acpi@vger.kernel.org, tony.luck@intel.com, bp@alien8.de, guohanjun@huawei.com, mchehab@kernel.org, xueshuai@linux.alibaba.com, lenb@kernel.org, kees@kernel.org, gustavoars@kernel.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org, Ashok Raj Subject: Re: [PATCH v3 1/3] ACPI: APEI: GHES: Refactor Grace decoder helpers Message-ID: References: <20260724122054.36162-1-kaihengf@nvidia.com> <20260804122318.88193-1-kaihengf@nvidia.com> <20260804122318.88193-2-kaihengf@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20260804122318.88193-2-kaihengf@nvidia.com> X-Authority-Analysis: v=2.4 cv=RpX16imK c=1 sm=1 tr=0 ts=6a752906 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=Ikd4Dj_1AAAA:8 a=VwQbUJbxAAAA:8 a=u8maBWZV0gvdrbkAJa4A:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-ORIG-GUID: fL2m2x9hvK4GYnLP-s05ZNplwazHkAY3 X-Proofpoint-GUID: fL2m2x9hvK4GYnLP-s05ZNplwazHkAY3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDAwMSBTYWx0ZWRfX4oVkzBMzU1mc Qn30BgklqVSEQvPqEChVJKL0BlG2ypWKk8FyNiEYQceG+lmWSLK78mlizJJ4QwmA5++dFWFroDc EjzAyXOCkqih40L+8i+oQAEGQB0LoWggsX8jt2USi12WpayLOILtxOmqtrn2nGxj1KuvZHmk93D eBP6fp/pvlxqKBFBurJzkAo9IT/x/1b+Z2H72GsMtGZmasTypuqMmsyrBwh5RPoRZY4lR3pum2Y HoSt1c+w7apFHgVEUTU90AaTWgiR/+51KJzBnmg2uRyCGe+HRRouj3FRiMJnSVvBuZQrcYXJKsP 0Pap+noh4poASRRZblnSM/ANBvWcc0wLux+pxEvrrtV4/GEmXIAAE0FFG3QfPXF43iVGrZ8nd0c VQOZVkscVfOV/NhHMC0fF/9T1qXuRS6uAnElzFhCu39BWzm3JYcwtstiiPJp+Iz0HTvIwNdycg4 dP7LBd9FSifucYy72fQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDAwMSBTYWx0ZWRfXw0J7/Kk72Yrh 6NQSqBP2awMh7mnO7mb+yZH7+1xT7ZacN8hFwAnOULd1a15uUKcJ/fGatLf73al+wk4LE5aWpwr h2ypQZtOp/pIamLAAKZZrKO1iVDjQwU= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_01,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070001 On Tue, Aug 04, 2026 at 08:23:15PM +0800, Kai-Heng Feng wrote: > Split the Grace CPER processing into a separate decode step and a > print step so the parser can be exercised by KUnit without a live > ACPI device. Introduce ghes-nvidia.h to hold shared types that the > Vera decoder added in the next commit will also reference. > > Parse the Grace wire payload with __packed structs and > get_unaligned_le*() for multi-byte fields, matching the Vera > decoder style. Reject nvidia_ghes_grace_reg_pair() calls with a > non-zero register count and a NULL grace_regs pointer, and > rate-limit Grace decoder diagnostics. > > Signed-off-by: Kai-Heng Feng Hi Kai, > --- > v3: > - Use __packed + get_unaligned_le*() for Grace multi-byte fields, > including register pairs (Shuai Xue). > - Keep __counted_by / struct_size; reject NULL grace_regs when > number_regs != 0; document the helper contract. > - Rate-limit Grace decoder and notify error messages. > v2: > - No change. > --- > MAINTAINERS | 2 +- > drivers/acpi/apei/ghes-nvidia.c | 160 ++++++++++++++++++++++---------- > drivers/acpi/apei/ghes-nvidia.h | 50 ++++++++++ > 3 files changed, 160 insertions(+), 52 deletions(-) > create mode 100644 drivers/acpi/apei/ghes-nvidia.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 5114e6db7307..aa9c2ae58ac5 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -19348,7 +19348,7 @@ NVIDIA GHES VENDOR CPER RECORD HANDLER > M: Kai-Heng Feng > L: linux-acpi@vger.kernel.org > S: Maintained > -F: drivers/acpi/apei/ghes-nvidia.c > +F: drivers/acpi/apei/ghes-nvidia* > > NVIDIA VRS RTC DRIVER > M: Shubhi Garg > diff --git a/drivers/acpi/apei/ghes-nvidia.c b/drivers/acpi/apei/ghes-nvidia.c > index 597275d81de8..e7cc912344fd 100644 > --- a/drivers/acpi/apei/ghes-nvidia.c > +++ b/drivers/acpi/apei/ghes-nvidia.c > @@ -9,13 +9,18 @@ > #include > #include > #include > +#include > #include > #include One naive question, do these CPER decoding for vendor specific pieces belong in the kernel? Or you would manage them from user space? > > -static const guid_t nvidia_sec_guid = > +#include > +#include "ghes-nvidia.h" > + > +static const guid_t nvidia_grace_sec_guid = > GUID_INIT(0x6d5244f2, 0x2712, 0x11ec, > 0xbe, 0xa7, 0xcb, 0x3f, 0xdb, 0x95, 0xc7, 0x86); > > +/* Grace CPER section wire layout (header without flexible register array). */ > struct cper_sec_nvidia { > char signature[16]; > __le16 error_type; > @@ -25,84 +30,137 @@ struct cper_sec_nvidia { > u8 number_regs; > u8 reserved; > __le64 instance_base; > - struct { > - __le64 addr; > - __le64 val; > - } regs[] __counted_by(number_regs); > -}; > + struct nvidia_ghes_grace_reg regs[] __counted_by(number_regs); > +} __packed; > + [snip] Cheers, Ashok