From nobody Mon Feb 9 10:12:19 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1656683400; cv=none; d=zohomail.com; s=zohoarc; b=BAYIEKLzqNriJcw/wbJpGBKjd0K53YwLTWG08WxRCuoN+PyqTywbVfDpnf7441+iHXPxarzj8eEU9soQKYlKuutCxloQwJ3LwEUt/OpZ/k7JZ6rjSS85U+497YHO+0qtTdU84bs7KHHYZJg8/3ugh/3mGk4Ze8yOBJGk40MINXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1656683400; 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=USnlfS0ot9q/dBanD+5Gxz7vkoGB4YUm4ouC337DtcY=; b=VF5WjEz5Dp4cp2KGADxjowWFhhcC6oXzQCDw5dn3HlP+nCYBWoRHy0qofHv6b6Mi052iIJyrOYG4iJNaHAhk52K30NT69ja1Qox0FuyrKvx/JO+uJsVQNfQ78uIig7gyxPKvJUnZ1xn4BQ/wrugjlgWc2+fkVwGIwK/T1bprwps= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1656683400318743.731217607319; Fri, 1 Jul 2022 06:50:00 -0700 (PDT) Received: from localhost ([::1]:49154 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o7H1z-0004wh-2U for importer@patchew.org; Fri, 01 Jul 2022 09:49:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58966) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o7Go3-00013a-46 for qemu-devel@nongnu.org; Fri, 01 Jul 2022 09:35:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:56175) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o7Gnx-0004de-60 for qemu-devel@nongnu.org; Fri, 01 Jul 2022 09:35:34 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-473-bWREwDqZMDexD2eJWbyjzA-1; Fri, 01 Jul 2022 09:35:23 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B62FF811E90; Fri, 1 Jul 2022 13:35:22 +0000 (UTC) Received: from dell-r430-03.lab.eng.brq.redhat.com (dell-r430-03.lab.eng.brq.redhat.com [10.37.153.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 26E7B40E7F29; Fri, 1 Jul 2022 13:35:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1656682528; 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=USnlfS0ot9q/dBanD+5Gxz7vkoGB4YUm4ouC337DtcY=; b=foGIwkWNoPk9giIYHtgX42iD6ysawn+WEUGaqshJGbRGAZASXxwmuj9ht8C6hxNhk5O5mQ FbURP0LmxyugRLu9LoWbLJAZgL/e08po/Wngs3cLlCs5k7/KUvydNMGRtkVNFIsB/F+4MF XihJuKim5+bPbIAbLfF2nM2rRgFE8H8= X-MC-Unique: bWREwDqZMDexD2eJWbyjzA-1 From: Igor Mammedov To: qemu-devel@nongnu.org Cc: mst@redhat.com, ani@anisinha.ca Subject: [PATCH 06/17] x86: acpi: _DSM: use Package to pass parameters Date: Fri, 1 Jul 2022 09:35:04 -0400 Message-Id: <20220701133515.137890-7-imammedo@redhat.com> In-Reply-To: <20220701133515.137890-1-imammedo@redhat.com> References: <20220701133515.137890-1-imammedo@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 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.129.124; envelope-from=imammedo@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1656683402092100001 Numer of possible arguments to pass to a method is limited in ACPI. The following patches will need to pass over more parameters to PDSM method, will hit that limit. Prepare for this by passing structure (Package) to method, which let us workaround arguments limitation. Pass to PDSM all standard arguments of _DSM as is, and pack custom parameters into Package that is passed as the last argument to PDSM. Signed-off-by: Igor Mammedov --- hw/i386/acpi-build.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index fe676b4831..8700446f50 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -431,11 +431,17 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, ); aml_append(dev, method); method =3D aml_method("_DSM", 4, AML_SERIALIZED); - aml_append(method, - aml_return(aml_call6("PDSM", aml_arg(0), aml_arg(1), - aml_arg(2), aml_arg(3), - aml_name("BSEL"), aml_name("_SUN"= ))) - ); + { + Aml *params =3D aml_local(0); + Aml *pkg =3D aml_package(2); + aml_append(pkg, aml_name("BSEL")); + aml_append(pkg, aml_name("_SUN")); + aml_append(method, aml_store(pkg, params)); + aml_append(method, + aml_return(aml_call5("PDSM", aml_arg(0), aml_arg(1= ), + aml_arg(2), aml_arg(3), param= s)) + ); + } aml_append(dev, method); aml_append(parent_scope, dev); =20 @@ -480,10 +486,17 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, */ aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); method =3D aml_method("_DSM", 4, AML_SERIALIZED); - aml_append(method, aml_return( - aml_call6("PDSM", aml_arg(0), aml_arg(1), aml_arg(2), - aml_arg(3), aml_name("BSEL"), aml_name("ASUN")) - )); + { + Aml *params =3D aml_local(0); + Aml *pkg =3D aml_package(2); + aml_append(pkg, aml_name("BSEL")); + aml_append(pkg, aml_name("ASUN")); + aml_append(method, aml_store(pkg, params)); + aml_append(method, aml_return( + aml_call5("PDSM", aml_arg(0), aml_arg(1), aml_arg(2), + aml_arg(3), params) + )); + } aml_append(dev, method); } =20 @@ -580,12 +593,13 @@ Aml *aml_pci_device_dsm(void) Aml *acpi_index =3D aml_local(2); Aml *zero =3D aml_int(0); Aml *one =3D aml_int(1); - Aml *bnum =3D aml_arg(4); Aml *func =3D aml_arg(2); Aml *rev =3D aml_arg(1); - Aml *sunum =3D aml_arg(5); + Aml *params =3D aml_arg(4); + Aml *bnum =3D aml_derefof(aml_index(params, aml_int(0))); + Aml *sunum =3D aml_derefof(aml_index(params, aml_int(1))); =20 - method =3D aml_method("PDSM", 6, AML_SERIALIZED); + method =3D aml_method("PDSM", 5, AML_SERIALIZED); =20 /* get supported functions */ ifctx =3D aml_if(aml_equal(func, zero)); @@ -662,10 +676,10 @@ Aml *aml_pci_device_dsm(void) * update acpi-index to actual value */ aml_append(ifctx, aml_store(acpi_index, aml_index(ret, zero))); + aml_append(ifctx, aml_return(ret)); } =20 aml_append(method, ifctx); - aml_append(method, aml_return(ret)); return method; } =20 --=20 2.31.1