From nobody Tue Nov 18 09:19:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1608715045; cv=none; d=zohomail.com; s=zohoarc; b=Ff2kgjPPAa2JzdF231Le6t3fcoGcM9VlPGUqzQIYokVAK7//9T1GkmAOapigtErCPoHIvugDqCXTS3HNg5pE8TlNkk9c1ZPkcW/35OHY0876RR6HASuiZ4ONEbhxADoarO1GMeR3zhC2k96rjVVg33TpES+TTZJrpKJgvi2FSec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1608715045; 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=ZsQ0wT30qYBfNXuXmEua2bzwTOTvB2nhkmZZUEg7ThA=; b=GSFmViSD7T7jx/c3n47T2/6F65KtyDykdpvrTZIDPw6KmSElROfDDwWMq+r1K/tJe5bkfcRUhgy9Mnr/mi/GfzAD23FFlGI7ybalW/B7M0WApQbMjvhG5Idm0rMs55w/sGhtHs3+0aBgjD5tAwjMW24draLKgb7thm4n99jYb+c= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1608715045449672.2878069318726; Wed, 23 Dec 2020 01:17:25 -0800 (PST) Received: from localhost ([::1]:55428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ks0Gq-0003Cd-EW for importer@patchew.org; Wed, 23 Dec 2020 04:17:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52432) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ks0A5-0003jg-L0 for qemu-devel@nongnu.org; Wed, 23 Dec 2020 04:10:26 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:2921) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ks09r-0002aT-LL for qemu-devel@nongnu.org; Wed, 23 Dec 2020 04:10:23 -0500 Received: from DGGEMS406-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4D16pF6XGVzM7yb; Wed, 23 Dec 2020 17:09:09 +0800 (CST) Received: from localhost (10.174.184.155) by DGGEMS406-HUB.china.huawei.com (10.3.19.206) with Microsoft SMTP Server id 14.3.498.0; Wed, 23 Dec 2020 17:09:54 +0800 From: Jiahui Cen To: Subject: [PATCH v3 5/8] acpi/gpex: Append pxb devs in ascending order Date: Wed, 23 Dec 2020 17:08:33 +0800 Message-ID: <20201223090836.9075-6-cenjiahui@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201223090836.9075-1-cenjiahui@huawei.com> References: <20201223090836.9075-1-cenjiahui@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.174.184.155] X-CFilter-Loop: Reflected 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=45.249.212.191; envelope-from=cenjiahui@huawei.com; helo=szxga05-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-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: xieyingtai@huawei.com, Jiahui Cen , Eduardo Habkost , "Michael S. Tsirkin" , Ard Biesheuvel , Richard Henderson , Paolo Bonzini , Igor Mammedov , Laszlo Ersek , wu.wubin@huawei.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The overlap check of IO resource window would fail when Linux kernel registers an IO resource [b, c) earlier than another resource [a, b). Though this incorrect check could be fixed by [1], it would be better to append pxb devs into DSDT table in ascending order. [1]: https://lore.kernel.org/lkml/20201218062335.5320-1-cenjiahui@huawei.co= m/ Signed-off-by: Jiahui Cen --- hw/pci-host/gpex-acpi.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c index 4bf1e94309..95a7a0f12b 100644 --- a/hw/pci-host/gpex-acpi.c +++ b/hw/pci-host/gpex-acpi.c @@ -141,7 +141,7 @@ static void acpi_dsdt_add_pci_osc(Aml *dev) void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg) { int nr_pcie_buses =3D cfg->ecam.size / PCIE_MMCFG_SIZE_MIN; - Aml *method, *crs, *dev, *rbuf; + Aml *method, *crs, *dev, *rbuf, *pxb_devs[nr_pcie_buses]; PCIBus *bus =3D cfg->bus; CrsRangeSet crs_range_set; CrsRangeEntry *entry; @@ -149,6 +149,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *= cfg) =20 /* start to construct the tables for pxb */ crs_range_set_init(&crs_range_set); + memset(pxb_devs, 0, sizeof(pxb_devs)); if (bus) { QLIST_FOREACH(bus, &bus->child, sibling) { uint8_t bus_num =3D pci_bus_num(bus); @@ -190,7 +191,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *= cfg) =20 acpi_dsdt_add_pci_osc(dev); =20 - aml_append(scope, dev); + pxb_devs[bus_num] =3D dev; } } =20 @@ -278,5 +279,11 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig = *cfg) aml_append(dev, dev_res0); aml_append(scope, dev); =20 + for (i =3D 0; i < ARRAY_SIZE(pxb_devs); i++) { + if (pxb_devs[i]) { + aml_append(scope, pxb_devs[i]); + } + } + crs_range_set_free(&crs_range_set); } --=20 2.29.2