From nobody Fri May 17 12:14:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614855613; cv=none; d=zohomail.com; s=zohoarc; b=IIt7x70pFTIAOX4esY5OWi7AATB9TPLwNPk60CutsDZlASuaqS2eQXLe/539rnOoITVJkKvxvO1alle6f/89dTsy+/MZhpMYty8abG1h3ZHABiyg6Qut9gqq6GrTOai0iyMXPp3rpff1qJC3BbI77Vk+RR5/rSVhHK73ky5XUHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614855613; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=h1oqOv9ujfdg7iaVJ+d6rkkdDrpGXlQd9pg+qtORuCk=; b=VL8Y3bbC/TOHinS7hqbXsGDAeJUp+JykODz7G1n1OW9t6xBOXeQHL2MX036/8lImSNRmEqStXnF4jzWoSbIz40I8mA5h6PNz33y9Smf3ZcOpvFWWOBUOgA4gIjbbIAJuOxmPxaZNx3seSaevwq1q6jZoos3uTllr239FnhHSfXU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1614855613104227.35167237614917; Thu, 4 Mar 2021 03:00:13 -0800 (PST) Received: from localhost ([::1]:49554 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lHliG-0005YV-1o for importer@patchew.org; Thu, 04 Mar 2021 06:00:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58218) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHleP-0000qQ-FN for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:55175) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lHleL-0002zD-O4 for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:13 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-411-PZ_tFZ29Msu1VHez9m2Kjw-1; Thu, 04 Mar 2021 05:56:07 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EF62A80432A; Thu, 4 Mar 2021 10:56:05 +0000 (UTC) Received: from t480s.redhat.com (ovpn-113-171.ams2.redhat.com [10.36.113.171]) by smtp.corp.redhat.com (Postfix) with ESMTP id 96EA55D720; Thu, 4 Mar 2021 10:56:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614855369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h1oqOv9ujfdg7iaVJ+d6rkkdDrpGXlQd9pg+qtORuCk=; b=evPenxBO3ER/yzkbsG3bxdMCLX8/Y0zJwv9tR08R/rWoOBbhyU79lDvzx+1rzrsKCIC0CC 1vzi5UWmtOrbWB4k5FzFg+RMPpmzyCzB4HAv4NuyYLDb8SdtuMF0G4CtwAgMCQ6qrtFpWx 6TY0vH9WQYgqL7fzothY+qQ9u70+P1Y= X-MC-Unique: PZ_tFZ29Msu1VHez9m2Kjw-1 From: David Hildenbrand To: qemu-devel@nongnu.org Subject: [PATCH v3 1/4] acpi: Set proper maximum size for "etc/table-loader" blob Date: Thu, 4 Mar 2021 11:55:51 +0100 Message-Id: <20210304105554.121674-2-david@redhat.com> In-Reply-To: <20210304105554.121674-1-david@redhat.com> References: <20210304105554.121674-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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 client-ip=216.205.24.124; envelope-from=david@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Michael S. Tsirkin" , David Hildenbrand , Richard Henderson , Alistair Francis , Shannon Zhao , qemu-arm@nongnu.org, Paolo Bonzini , Igor Mammedov , Laszlo Ersek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The resizeable memory region / RAMBlock that is created for the cmd blob has a maximum size of whole host pages (e.g., 4k), because RAMBlocks work on full host pages. In addition, in i386 ACPI code: acpi_align_size(tables->linker->cmd_blob, ACPI_BUILD_ALIGN_SIZE); makes sure to align to multiples of 4k, padding with 0. For example, if our cmd_blob is created with a size of 2k, the maximum size is 4k - we cannot grow beyond that. Growing might be required due to guest action when rebuilding the tables, but also on incoming migration. This automatic generation of the maximum size used to be sufficient, however, there are cases where we cross host pages now when growing at runtime: we exceed the maximum size of the RAMBlock and can crash QEMU when trying to resize the resizeable memory region / RAMBlock: $ build/qemu-system-x86_64 --enable-kvm \ -machine q35,nvdimm=3Don \ -smp 1 \ -cpu host \ -m size=3D2G,slots=3D8,maxmem=3D4G \ -object memory-backend-file,id=3Dmem0,mem-path=3D/tmp/nvdimm,size=3D2= 56M \ -device nvdimm,label-size=3D131072,memdev=3Dmem0,id=3Dnvdimm0,slot=3D= 1 \ -nodefaults \ -device vmgenid \ -device intel-iommu Results in: Unexpected error in qemu_ram_resize() at ../softmmu/physmem.c:1850: qemu-system-x86_64: Size too large: /rom@etc/table-loader: 0x2000 > 0x1000: Invalid argument In this configuration, we consume exactly 4k (32 entries, 128 bytes each) when creating the VM. However, once the guest boots up and maps the MCFG, we also create the MCFG table and end up consuming 2 additional entries (pointer + checksum) -- which is where we try resizing the memory region / RAMBlock, however, the maximum size does not allow for it. Currently, we get the following maximum sizes for our different mutable tables based on behavior of resizeable RAMBlock: hw table max_size ------- --------------------------------------------------------- virt "etc/acpi/tables" ACPI_BUILD_TABLE_MAX_SIZE (0x200000) virt "etc/table-loader" HOST_PAGE_ALIGN(initial_size) virt "etc/acpi/rsdp" HOST_PAGE_ALIGN(initial_size) i386 "etc/acpi/tables" ACPI_BUILD_TABLE_MAX_SIZE (0x200000) i386 "etc/table-loader" HOST_PAGE_ALIGN(initial_size) i386 "etc/acpi/rsdp" HOST_PAGE_ALIGN(initial_size) microvm "etc/acpi/tables" ACPI_BUILD_TABLE_MAX_SIZE (0x200000) microvm "etc/table-loader" HOST_PAGE_ALIGN(initial_size) microvm "etc/acpi/rsdp" HOST_PAGE_ALIGN(initial_size) Let's set the maximum table size for "etc/table-loader" to 64k, so we can properly grow at runtime, which should be good enough for the future. Migration is not concerned with the maximum size of a RAMBlock, only with the used size - so existing setups are not affected. Of course, we cannot migrate a VM that would have crash when started on older QEMU from new QEMU to older QEMU without failing early on the destination when synchronizing the RAM state: qemu-system-x86_64: Size too large: /rom@etc/table-loader: 0x2000 > 0x1= 000: Invalid argument qemu-system-x86_64: error while loading state for instance 0x0 of devic= e 'ram' qemu-system-x86_64: load of migration failed: Invalid argument We'll refactor the code next, to make sure we get rid of this implicit behavior for "etc/acpi/rsdp" as well and to make the code easier to grasp. Reviewed-by: Igor Mammedov Cc: Alistair Francis Cc: Paolo Bonzini Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Peter Maydell Cc: Shannon Zhao Cc: Marcel Apfelbaum Cc: Paolo Bonzini Cc: Richard Henderson Cc: Laszlo Ersek Signed-off-by: David Hildenbrand Reviewed-by: Laszlo Ersek --- hw/arm/virt-acpi-build.c | 3 ++- hw/i386/acpi-build.c | 3 ++- hw/i386/acpi-microvm.c | 2 +- include/hw/acpi/aml-build.h | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index f9c9df916c..a91550de6f 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -865,7 +865,8 @@ void virt_acpi_setup(VirtMachineState *vms) =20 build_state->linker_mr =3D acpi_add_rom_blob(virt_acpi_build_update, build_state, - tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE,= 0); + tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE, + ACPI_BUILD_LOADER_MAX_SIZE); =20 fw_cfg_add_file(vms->fw_cfg, ACPI_BUILD_TPMLOG_FILE, tables.tcpalog->d= ata, acpi_data_len(tables.tcpalog)); diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 31a5f6f4a5..a75138ea5a 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2524,7 +2524,8 @@ void acpi_setup(void) =20 build_state->linker_mr =3D acpi_add_rom_blob(acpi_build_update, build_state, - tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE,= 0); + tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE, + ACPI_BUILD_LOADER_MAX_SIZE); =20 fw_cfg_add_file(x86ms->fw_cfg, ACPI_BUILD_TPMLOG_FILE, tables.tcpalog->data, acpi_data_len(tables.tcpalog)); diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index 54b3af478a..01f1945ac1 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -255,7 +255,7 @@ void acpi_setup_microvm(MicrovmMachineState *mms) ACPI_BUILD_TABLE_MAX_SIZE); acpi_add_rom_blob(acpi_build_no_update, NULL, tables.linker->cmd_blob, - "etc/table-loader", 0); + "etc/table-loader", ACPI_BUILD_LOADER_MAX_SIZE); acpi_add_rom_blob(acpi_build_no_update, NULL, tables.rsdp, ACPI_BUILD_RSDP_FILE, 0); diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 380d3e3924..a22c6a4c86 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -6,6 +6,7 @@ =20 /* Reserve RAM space for tables: add another order of magnitude. */ #define ACPI_BUILD_TABLE_MAX_SIZE 0x200000 +#define ACPI_BUILD_LOADER_MAX_SIZE 0x10000 =20 #define ACPI_BUILD_APPNAME6 "BOCHS " #define ACPI_BUILD_APPNAME8 "BXPC " --=20 2.29.2 From nobody Fri May 17 12:14:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614855505; cv=none; d=zohomail.com; s=zohoarc; b=Bweh3RrB+yE9Kh0RUPyRZA3AF5twAdEK8MH8Ggz5WmuOC6UoXoNPE++HPRQDf05UkM3l7SvHFRLU1pH8/hLa5jb6Idk7+irhjtt6Mw+v3MQLnoiPKHL41k8ZgAxI+kJX7x0f71thVyO3CuILTJBPrBZnhHds8dCFHDnwCEqKxYI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614855505; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sqi2lxbUVwBulxgeeARPptYG3Lh25t/5QdRWIosS4zA=; b=h1LeXL2aa/g4gvqlekex2BvzEGrFp53I/6NYKeufNACEW99NrArV/z/jvkvogp1u/wrwFK5ZATNvxymD42Huo/c0yAy3+K0/YMjRSxSuXKgGQR73w9v5PRCsPCRYDQKM9nID1MiRzwMh3C3g5X6RCfkdRiczN2bvDNv0b0K3L0s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1614855505011625.4026202047; Thu, 4 Mar 2021 02:58:25 -0800 (PST) Received: from localhost ([::1]:43618 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lHlgV-00035L-W1 for importer@patchew.org; Thu, 04 Mar 2021 05:58:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58246) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHleS-0000xX-Gs for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:16 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:53834) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lHleQ-00031e-36 for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:16 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-48-i6SSeGgtNP6m_fQbYubRQw-1; Thu, 04 Mar 2021 05:56:10 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AACEC10059C0; Thu, 4 Mar 2021 10:56:08 +0000 (UTC) Received: from t480s.redhat.com (ovpn-113-171.ams2.redhat.com [10.36.113.171]) by smtp.corp.redhat.com (Postfix) with ESMTP id 584A8629DA; Thu, 4 Mar 2021 10:56:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614855373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sqi2lxbUVwBulxgeeARPptYG3Lh25t/5QdRWIosS4zA=; b=FGwzGciwuYD2zGC+9CKqQX1He4X1Z5Qv06F8IA6cOsICSWtVBp7AD6Xyh/pvG+Fc+7okxM GkPY3abNMAl3gTb9+V12OOex/eCnwzo0AWVRbjEfrAx5V1P98x2lKRKZuT4cKzpngU88sc UtsXkFbTHTgs1OxMher0Xp3noQN2gyM= X-MC-Unique: i6SSeGgtNP6m_fQbYubRQw-1 From: David Hildenbrand To: qemu-devel@nongnu.org Subject: [PATCH v3 2/4] microvm: Don't open-code "etc/table-loader" Date: Thu, 4 Mar 2021 11:55:52 +0100 Message-Id: <20210304105554.121674-3-david@redhat.com> In-Reply-To: <20210304105554.121674-1-david@redhat.com> References: <20210304105554.121674-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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 client-ip=170.10.133.124; envelope-from=david@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Michael S. Tsirkin" , David Hildenbrand , Richard Henderson , Alistair Francis , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , Paolo Bonzini , Laszlo Ersek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Let's just reuse ACPI_BUILD_LOADER_FILE. Cc: Alistair Francis Cc: Paolo Bonzini Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Peter Maydell Cc: Shannon Zhao Cc: Marcel Apfelbaum Cc: Paolo Bonzini Cc: Richard Henderson Cc: Laszlo Ersek Signed-off-by: David Hildenbrand Reviewed-by: Igor Mammedov Reviewed-by: Laszlo Ersek --- hw/i386/acpi-microvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index 01f1945ac1..502aac0ba2 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -255,7 +255,7 @@ void acpi_setup_microvm(MicrovmMachineState *mms) ACPI_BUILD_TABLE_MAX_SIZE); acpi_add_rom_blob(acpi_build_no_update, NULL, tables.linker->cmd_blob, - "etc/table-loader", ACPI_BUILD_LOADER_MAX_SIZE); + ACPI_BUILD_LOADER_FILE, ACPI_BUILD_LOADER_MAX_SIZE); acpi_add_rom_blob(acpi_build_no_update, NULL, tables.rsdp, ACPI_BUILD_RSDP_FILE, 0); --=20 2.29.2 From nobody Fri May 17 12:14:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614855496; cv=none; d=zohomail.com; s=zohoarc; b=QnhscbaW+6VzF1gfmlOR6zci/afkuipq8kDT0nrpL4WXz3fi1bVbbZNijW2pDEzeZjL6CE+RasF/mHfPSy9+qiJldNggSs8+15/qGeG6AqnhVfNcBQ9dUr0u9gepdtFg9JIb1Fg0lp4fTJNobpnAAllNgMIDuBJxqMIg6KKsEEU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614855496; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UFzWH8GPof9g+UzUl8SxeZWKO9+fPaRYFQwEpobjxsQ=; b=e3uNO6soxbKQJTlpI05eNIg5zikjLNjgwSUco4wlRRx/tGXgYBVKxHvVLiin/szOR7bWN9vJVXqx6qJVc2WjGC/75wTPJkFH7GVk4jMJwG12LG0wyHQB+nnJrnteC9aVRTDTNXVTTsfQBBR2BuI4OF/LgClweyKj2LdhB0BD3nQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1614855496966141.37740631369297; Thu, 4 Mar 2021 02:58:16 -0800 (PST) Received: from localhost ([::1]:43146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lHlgN-0002rs-UK for importer@patchew.org; Thu, 04 Mar 2021 05:58:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58260) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHleU-00011u-8B for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:18 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:56143) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lHleR-000327-7f for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:17 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-30-AqZLPXDvNhe979X73FM2FA-1; Thu, 04 Mar 2021 05:56:12 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 573A91932480; Thu, 4 Mar 2021 10:56:11 +0000 (UTC) Received: from t480s.redhat.com (ovpn-113-171.ams2.redhat.com [10.36.113.171]) by smtp.corp.redhat.com (Postfix) with ESMTP id 05C536268E; Thu, 4 Mar 2021 10:56:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614855374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UFzWH8GPof9g+UzUl8SxeZWKO9+fPaRYFQwEpobjxsQ=; b=JTyyf7Yd+3TGsD75T8v726nsGL6nwB4QDlh8a2kGGPvxxSrhU5y7c/a/Q292RJLOxaoI+6 BXMnxeodrjGo2Xjtme5+pdTW33NGxjjI3vxKQyp/afFyikgem37QuPUoLoG21ZGku7KmaO jQ0kAtesa3MrtB/4Ae/SiP89Rx+eWl4= X-MC-Unique: AqZLPXDvNhe979X73FM2FA-1 From: David Hildenbrand To: qemu-devel@nongnu.org Subject: [PATCH v3 3/4] acpi: Move maximum size logic into acpi_add_rom_blob() Date: Thu, 4 Mar 2021 11:55:53 +0100 Message-Id: <20210304105554.121674-4-david@redhat.com> In-Reply-To: <20210304105554.121674-1-david@redhat.com> References: <20210304105554.121674-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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 client-ip=170.10.133.124; envelope-from=david@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Michael S. Tsirkin" , David Hildenbrand , Richard Henderson , Alistair Francis , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , Paolo Bonzini , Laszlo Ersek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" We want to have safety margins for all tables based on the table type. Let's move the maximum size logic into acpi_add_rom_blob() and make it dependent on the table name, so we don't have to replicate for each and every instance that creates such tables. Suggested-by: Laszlo Ersek Cc: Alistair Francis Cc: Paolo Bonzini Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Peter Maydell Cc: Shannon Zhao Cc: Marcel Apfelbaum Cc: Paolo Bonzini Cc: Richard Henderson Cc: Laszlo Ersek Signed-off-by: David Hildenbrand Reviewed-by: Igor Mammedov Reviewed-by: Laszlo Ersek --- hw/acpi/utils.c | 12 ++++++++++-- hw/arm/virt-acpi-build.c | 13 ++++++------- hw/i386/acpi-build.c | 8 +++----- hw/i386/acpi-microvm.c | 16 ++++++---------- include/hw/acpi/aml-build.h | 4 ---- include/hw/acpi/utils.h | 3 +-- 6 files changed, 26 insertions(+), 30 deletions(-) diff --git a/hw/acpi/utils.c b/hw/acpi/utils.c index a134a4d554..f2d69a6d92 100644 --- a/hw/acpi/utils.c +++ b/hw/acpi/utils.c @@ -27,9 +27,17 @@ #include "hw/loader.h" =20 MemoryRegion *acpi_add_rom_blob(FWCfgCallback update, void *opaque, - GArray *blob, const char *name, - uint64_t max_size) + GArray *blob, const char *name) { + uint64_t max_size =3D 0; + + /* Reserve RAM space for tables: add another order of magnitude. */ + if (!strcmp(name, ACPI_BUILD_TABLE_FILE)) { + max_size =3D 0x200000; + } else if (!strcmp(name, ACPI_BUILD_LOADER_FILE)) { + max_size =3D 0x10000; + } + return rom_add_blob(name, blob->data, acpi_data_len(blob), max_size, -= 1, name, update, opaque, NULL, true); } diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index a91550de6f..f5a2b2d4cb 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -859,14 +859,13 @@ void virt_acpi_setup(VirtMachineState *vms) /* Now expose it all to Guest */ build_state->table_mr =3D acpi_add_rom_blob(virt_acpi_build_update, build_state, tables.table_da= ta, - ACPI_BUILD_TABLE_FILE, - ACPI_BUILD_TABLE_MAX_SIZE); + ACPI_BUILD_TABLE_FILE); assert(build_state->table_mr !=3D NULL); =20 - build_state->linker_mr =3D - acpi_add_rom_blob(virt_acpi_build_update, build_state, - tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE, - ACPI_BUILD_LOADER_MAX_SIZE); + build_state->linker_mr =3D acpi_add_rom_blob(virt_acpi_build_update, + build_state, + tables.linker->cmd_blob, + ACPI_BUILD_LOADER_FILE); =20 fw_cfg_add_file(vms->fw_cfg, ACPI_BUILD_TPMLOG_FILE, tables.tcpalog->d= ata, acpi_data_len(tables.tcpalog)); @@ -880,7 +879,7 @@ void virt_acpi_setup(VirtMachineState *vms) =20 build_state->rsdp_mr =3D acpi_add_rom_blob(virt_acpi_build_update, build_state, tables.rsdp, - ACPI_BUILD_RSDP_FILE, 0); + ACPI_BUILD_RSDP_FILE); =20 qemu_register_reset(virt_acpi_build_reset, build_state); virt_acpi_build_reset(build_state); diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index a75138ea5a..8de7722cfd 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2518,14 +2518,12 @@ void acpi_setup(void) /* Now expose it all to Guest */ build_state->table_mr =3D acpi_add_rom_blob(acpi_build_update, build_state, tables.table_da= ta, - ACPI_BUILD_TABLE_FILE, - ACPI_BUILD_TABLE_MAX_SIZE); + ACPI_BUILD_TABLE_FILE); assert(build_state->table_mr !=3D NULL); =20 build_state->linker_mr =3D acpi_add_rom_blob(acpi_build_update, build_state, - tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE, - ACPI_BUILD_LOADER_MAX_SIZE); + tables.linker->cmd_blob, ACPI_BUILD_LOADER_FILE); =20 fw_cfg_add_file(x86ms->fw_cfg, ACPI_BUILD_TPMLOG_FILE, tables.tcpalog->data, acpi_data_len(tables.tcpalog)); @@ -2564,7 +2562,7 @@ void acpi_setup(void) build_state->rsdp =3D NULL; build_state->rsdp_mr =3D acpi_add_rom_blob(acpi_build_update, build_state, tables.rsdp, - ACPI_BUILD_RSDP_FILE, 0); + ACPI_BUILD_RSDP_FILE); } =20 qemu_register_reset(acpi_build_reset, build_state); diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index 502aac0ba2..271710eb92 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -249,16 +249,12 @@ void acpi_setup_microvm(MicrovmMachineState *mms) acpi_build_microvm(&tables, mms); =20 /* Now expose it all to Guest */ - acpi_add_rom_blob(acpi_build_no_update, NULL, - tables.table_data, - ACPI_BUILD_TABLE_FILE, - ACPI_BUILD_TABLE_MAX_SIZE); - acpi_add_rom_blob(acpi_build_no_update, NULL, - tables.linker->cmd_blob, - ACPI_BUILD_LOADER_FILE, ACPI_BUILD_LOADER_MAX_SIZE); - acpi_add_rom_blob(acpi_build_no_update, NULL, - tables.rsdp, - ACPI_BUILD_RSDP_FILE, 0); + acpi_add_rom_blob(acpi_build_no_update, NULL, tables.table_data, + ACPI_BUILD_TABLE_FILE); + acpi_add_rom_blob(acpi_build_no_update, NULL, tables.linker->cmd_blob, + ACPI_BUILD_LOADER_FILE); + acpi_add_rom_blob(acpi_build_no_update, NULL, tables.rsdp, + ACPI_BUILD_RSDP_FILE); =20 acpi_build_tables_cleanup(&tables, false); } diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index a22c6a4c86..15b069186d 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -4,10 +4,6 @@ #include "hw/acpi/acpi-defs.h" #include "hw/acpi/bios-linker-loader.h" =20 -/* Reserve RAM space for tables: add another order of magnitude. */ -#define ACPI_BUILD_TABLE_MAX_SIZE 0x200000 -#define ACPI_BUILD_LOADER_MAX_SIZE 0x10000 - #define ACPI_BUILD_APPNAME6 "BOCHS " #define ACPI_BUILD_APPNAME8 "BXPC " =20 diff --git a/include/hw/acpi/utils.h b/include/hw/acpi/utils.h index 140b4de603..0022df027d 100644 --- a/include/hw/acpi/utils.h +++ b/include/hw/acpi/utils.h @@ -4,6 +4,5 @@ #include "hw/nvram/fw_cfg.h" =20 MemoryRegion *acpi_add_rom_blob(FWCfgCallback update, void *opaque, - GArray *blob, const char *name, - uint64_t max_size); + GArray *blob, const char *name); #endif --=20 2.29.2 From nobody Fri May 17 12:14:40 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614855778; cv=none; d=zohomail.com; s=zohoarc; b=HpP+jp+hgluHgNplVtsGXubH0Hp0Ms1NvBWK8fLhDMFyaV9IvRbLUHriNLa+uQbLplDtmu0GRWIrk+rzCEXa4lT+1IAppCOBtLiBr0w9QqOFsO03r6hOWAnAM7uW3uJbVrNgorMw8/eVDhwNnqY2pEJmzCwPDoFH1ODkEtryCpY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614855778; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5SOwtyN3Zbc4Z927SH0l0jz+6PoxQQXJFaiIPfeFKOQ=; b=N6CqU0Maz1GEbKQBJewkbK39eRiQPuhRxCrtEzTFbekrCgjiaoM9RzBTqo7ou/Scvt7JzU2Vb6YEsZaiVHxahXSjeuAIzur53ipP7ZclmvFvr+n4kHeeLCh4Iz0qCraRZXzECZSisbmTlLCm3fCsUcA0X3/nceGu2PHrFai1pYU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1614855778654375.5844785554534; Thu, 4 Mar 2021 03:02:58 -0800 (PST) Received: from localhost ([::1]:52962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lHlkv-0007Dm-09 for importer@patchew.org; Thu, 04 Mar 2021 06:02:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58288) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHleV-00015t-Nm for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:19 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:53333) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lHleT-00033L-Vu for qemu-devel@nongnu.org; Thu, 04 Mar 2021 05:56:19 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-235-ei-ldS5NOou_OcrXB0wmLg-1; Thu, 04 Mar 2021 05:56:15 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0241D80432E; Thu, 4 Mar 2021 10:56:14 +0000 (UTC) Received: from t480s.redhat.com (ovpn-113-171.ams2.redhat.com [10.36.113.171]) by smtp.corp.redhat.com (Postfix) with ESMTP id A632F5D720; Thu, 4 Mar 2021 10:56:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614855377; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5SOwtyN3Zbc4Z927SH0l0jz+6PoxQQXJFaiIPfeFKOQ=; b=BXMbpzvjzbNI5GpjhFYcmNS+WY4MWlNOSDC2iXoKnFOQu33ds13QX/c1Nonr6ef5R46VoR 5Yha9S+/nb1Tany1/seAA3E3GN64Sv6C54wJtBdyMvbQthwqNahEaDJVZXtD3sLxlNxapo cOJ2ocFAMwBNZ1E4IpMkJSv9lFQwKyo= X-MC-Unique: ei-ldS5NOou_OcrXB0wmLg-1 From: David Hildenbrand To: qemu-devel@nongnu.org Subject: [PATCH v3 4/4] acpi: Set proper maximum size for "etc/acpi/rsdp" blob Date: Thu, 4 Mar 2021 11:55:54 +0100 Message-Id: <20210304105554.121674-5-david@redhat.com> In-Reply-To: <20210304105554.121674-1-david@redhat.com> References: <20210304105554.121674-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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 client-ip=216.205.24.124; envelope-from=david@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Michael S. Tsirkin" , David Hildenbrand , Richard Henderson , Alistair Francis , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , Paolo Bonzini , Laszlo Ersek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Let's also set a maximum size for "etc/acpi/rsdp", so the maximum size doesn't get implicitly set based on the initial table size. In my experiments, the table size was in the range of 22 bytes, so a single page (=3D=3D what we used until now) seems to be good enough. Now that we have defined maximum sizes for all currently used table types, let's assert that we catch usage with new tables that need a proper maximum size definition. Also assert that our initial size does not exceed the maximum size; while qemu_ram_alloc_internal() properly asserts that the initial RAMBlock size is <=3D its maximum size, the result might differ when the host page size is bigger than 4k. Suggested-by: Laszlo Ersek Cc: Alistair Francis Cc: Paolo Bonzini Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Peter Maydell Cc: Shannon Zhao Cc: Marcel Apfelbaum Cc: Paolo Bonzini Cc: Richard Henderson Cc: Laszlo Ersek Signed-off-by: David Hildenbrand Reviewed-by: Igor Mammedov Reviewed-by: Laszlo Ersek --- hw/acpi/utils.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/acpi/utils.c b/hw/acpi/utils.c index f2d69a6d92..0c486ea29f 100644 --- a/hw/acpi/utils.c +++ b/hw/acpi/utils.c @@ -29,14 +29,19 @@ MemoryRegion *acpi_add_rom_blob(FWCfgCallback update, void *opaque, GArray *blob, const char *name) { - uint64_t max_size =3D 0; + uint64_t max_size; =20 /* Reserve RAM space for tables: add another order of magnitude. */ if (!strcmp(name, ACPI_BUILD_TABLE_FILE)) { max_size =3D 0x200000; } else if (!strcmp(name, ACPI_BUILD_LOADER_FILE)) { max_size =3D 0x10000; + } else if (!strcmp(name, ACPI_BUILD_RSDP_FILE)) { + max_size =3D 0x1000; + } else { + g_assert_not_reached(); } + g_assert(acpi_data_len(blob) <=3D max_size); =20 return rom_add_blob(name, blob->data, acpi_data_len(blob), max_size, -= 1, name, update, opaque, NULL, true); --=20 2.29.2