From nobody Mon Feb 9 01:00:52 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1768994772; cv=none; d=zohomail.com; s=zohoarc; b=KruAmQP9dZo1kG5JdrGuXOvyo8WkvaeJNFoJgC6s/HjdTBNNM4fhuwdX8+GFTw345IgKieGA89bg/eFTZms4qUQ159XLjGENz5ca0NrWC2WxIyXTNaj33iLhUR2T1YwZ6gF4hDdMkjUBIS5urmDzER+3+Cysti/9Y6fwWSB0mNY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768994772; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pTird3RDSwTTp7B/ate4EHcEcCJXAPDtH5k0pNkuXrs=; b=nr2MI2lhC4JJ+K8+u2btMUXwp1MDMui+lfNFq21hn4XknDCDW3/7vqwS4LcnIeiZ7ilIyQ6Ubp4SJ1FSF+M20RmJumn7Bk/tbBxQAOpZcUSy2K8t1ZeSqvUMtlyWVxCh+VXMp5170cBN0do3XdmISK3GNJ+9MHs5MtJbPbLU7q8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768994772660562.7978710834898; Wed, 21 Jan 2026 03:26:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1viWLJ-0002wZ-0k; Wed, 21 Jan 2026 06:25:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1viWLC-0002oj-U2 for qemu-devel@nongnu.org; Wed, 21 Jan 2026 06:25:38 -0500 Received: from tor.source.kernel.org ([172.105.4.254]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1viWL8-0007n8-1j for qemu-devel@nongnu.org; Wed, 21 Jan 2026 06:25:36 -0500 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 4F95F600AA; Wed, 21 Jan 2026 11:25:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF83FC2BC86; Wed, 21 Jan 2026 11:25:24 +0000 (UTC) Received: from mchehab by mail.kernel.org with local (Exim 4.99) (envelope-from ) id 1viWKx-00000003gJa-0TSq; Wed, 21 Jan 2026 12:25:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768994724; bh=GxqXjU/gsmVVnItuvIwe8JVTgtQ4M8GaTVghV9hwIRI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S/emF1+Kp58gkPBbJCONcCHnP9gBF4xO5+UNZbmnn8MKcQj7Rq2HU4JGGQtgWDMql zeEv4PkjfHlj2Pl1rB51QYtiTYGSn8iWNKnPFv4vSt2yPZm0eqvSznIxUXIlyVLeNA MYsG3t3J4o6jLRkIAsj3jWltkrHS1ny+3iFR3tgx1ORCJSQ72i4kQF3gZ/Rngbpbbb mm8MmUFf7PsLH343A1VwWeJAq9PFspMfQODJD5VP6ATq17LwyOJsL437X3wQNOCzKO b44n51MGmDCPZTIMjW8cAcfpSzP+ll0ilqVaaWK8gxx+H8pRbGt3JxAr4LuhjPNlqa DViLelvGfJPdg== From: Mauro Carvalho Chehab To: Michael S Tsirkin Cc: Jonathan Cameron , Shiju Jose , qemu-devel@nongnu.org, Igor Mammedov , Mauro Carvalho Chehab , Cleber Rosa , John Snow Subject: [PATCH 05/13] scripts/qmp_helper: fix raw_data logic Date: Wed, 21 Jan 2026 12:25:13 +0100 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=172.105.4.254; envelope-from=mchehab+huawei@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.087, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1768994773895154100 According with UEFI 6.4 spec Table 18.11 Generic Error Status Block: Raw Data Offset: Offset in bytes from the beginning of the Error Status Block to raw error data. The raw data must follow any Generic Error Data Entries. Data Length: Length in bytes of the generic error data. So, basically, we have: +----------+ / | GEBS | | +----------+ / | | GEDE | | | | header | | +--> raw data +----------+ +--> data | offset | GEDE | | length | | payload | | | +----------+ / / | Raw data | +----------+ where: - raw data offset is relative to the beginning of GEBS; - data length is only for GEDE header and payload. Fix the code to handle it the expected way. Signed-off-by: Mauro Carvalho Chehab Reviewed-by: Jonathan Cameron --- scripts/qmp_helper.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/scripts/qmp_helper.py b/scripts/qmp_helper.py index 51c8ad92a39d..40059cd105f6 100755 --- a/scripts/qmp_helper.py +++ b/scripts/qmp_helper.py @@ -411,6 +411,7 @@ def _connect(self): "simulated": util.bit(2), } =20 + GENERIC_ERROR_STATUS_SIZE =3D 20 GENERIC_DATA_SIZE =3D 72 =20 def argparse(parser): @@ -551,7 +552,7 @@ def send_cper_raw(self, cper_data): =20 return False =20 - def get_gede(self, notif_type, cper_length): + def get_gede(self, notif_type, payload_length): """ Return a Generic Error Data Entry bytearray """ @@ -563,22 +564,27 @@ def get_gede(self, notif_type, cper_length): util.data_add(gede, 0x300, 2) util.data_add(gede, self.validation_bits, 1) util.data_add(gede, self.flags, 1) - util.data_add(gede, cper_length, 4) + util.data_add(gede, payload_length, 4) gede.extend(self.fru_id) gede.extend(self.fru_text) gede.extend(self.timestamp) =20 return gede =20 - def get_gebs(self, data_length): + def get_gebs(self, payload_length): """ Return a Generic Error Status Block bytearray """ =20 + data_length =3D payload_length + data_length +=3D self.GENERIC_DATA_SIZE + gebs =3D bytearray() =20 if self.raw_data: - raw_data_offset =3D len(gebs) + raw_data_offset =3D payload_length + raw_data_offset +=3D self.GENERIC_ERROR_STATUS_SIZE + raw_data_offset +=3D self.GENERIC_DATA_SIZE else: raw_data_offset =3D 0 =20 @@ -617,8 +623,7 @@ def send_cper(self, notif_type, payload, if raw_data: self.raw_data =3D raw_data =20 - cper_length =3D len(payload) - data_length =3D cper_length + len(self.raw_data) + self.GENERIC_DA= TA_SIZE + payload_length =3D len(payload) =20 if gede and len(gede) !=3D 72: print(f"Invalid Generic Error Data Entry length: {len(gede)}. = Ignoring it") @@ -629,16 +634,16 @@ def send_cper(self, notif_type, payload, gebs =3D None =20 if not gede: - gede =3D self.get_gede(notif_type, cper_length) + gede =3D self.get_gede(notif_type, payload_length) =20 if not gebs: - gebs =3D self.get_gebs(data_length) + gebs =3D self.get_gebs(payload_length) =20 cper_data =3D bytearray() cper_data.extend(gebs) cper_data.extend(gede) - cper_data.extend(bytearray(self.raw_data)) cper_data.extend(bytearray(payload)) + cper_data.extend(bytearray(self.raw_data)) =20 if self.debug: print(f"GUID: {notif_type}") --=20 2.52.0