From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:adf:a111:0:0:0:0:0 with SMTP id o17-v6csp2039887wro; Sun, 4 Nov 2018 17:58:15 -0800 (PST) X-Google-Smtp-Source: AJdET5fjrcQeES3gK5+jZoghJvCzHTu2PIph+rklTyctM57cJpkHIOijryrROrO1C2bC0zgBrllL X-Received: by 2002:aed:2a1a:: with SMTP id c26mr7510045qtd.147.1541383095267; Sun, 04 Nov 2018 17:58:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541383095; cv=none; d=google.com; s=arc-20160816; b=DuWt2N43NpAdkH/iqnast7lPxvBlhl2/Xhdxx+DTghhB9qWhr4TtCrHqdrqK0a+qqA bLcyrjTh8BQQuobJ7/QHe0d55AQ8p5jS80j7Y9PeTcPfD68YNb80XM7EG/7KTLOkFGn3 eikgF5u6cIytHBWFH0tn9/ycH20iSiACxJjbPxWXlxTMMCEOcACD2rpbjxoHVh/UFlGD Nn1Sgcu/98mIPu1X091R60wL5UE+V0fdTP40MpoTdsZCRTicVP6ZhP4Oy7VOqpOPLEqM +iGBcOfoEX8j88yTb/ELfZ0FqUtQ47pKGbhLYRRgaOC4bhyPfvZxkYcQwT8GCltpAwTk k/YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from; bh=x7XPSFYzsJYlSNWxTmpTJpOs9T5ggglwfb7cfhOQWY8=; b=fd+wyBRz2ODR+0stqM5UP5kFAOZODT4+c2pgUBjPJDYUN37TOImNorLkN/Ou0/4QTV 0gasTtwN8UV6nbc4R2lnxBrlX4hbIMLbfdBLMSf7bDNGej4FvSaSRqGJ2KKiSeRSvxkt /6A3tR2RUkjDqJZ4T7oy8HCdNG+U7YqNmDgSgHyYaZKDdQM0hQDTLMZE4IMMpZu5SGHP qxDNDoSrurwWIbFXd4LlYPBENFkU8wUEWGjaQY55OL+ToPKZZDtNSaOX9+RYgEV6vNe8 oITdswQKTD3Nzo8lZFYusGKoY7knpnJio7pn64AlA0JsFXtFBMbYbC7L9HrSbS7Ec03+ bcxg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id u2si145577qtd.231.2018.11.04.17.58.15 for (version=TLS1 cipher=AES128-SHA bits=128/128); Sun, 04 Nov 2018 17:58:15 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from localhost ([::1]:60938 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJU9e-0006D4-M4 for alex.bennee@linaro.org; Sun, 04 Nov 2018 20:58:14 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTvi-0000xe-FS for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:43:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJTvd-0003os-5F for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:43:50 -0500 Received: from mga01.intel.com ([192.55.52.88]:6359) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gJTvc-0003eP-R0; Sun, 04 Nov 2018 20:43:45 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Nov 2018 17:43:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,466,1534834800"; d="scan'208";a="277074531" Received: from emurphy1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.252.26.250]) by fmsmga005.fm.intel.com with ESMTP; 04 Nov 2018 17:43:30 -0800 From: Samuel Ortiz To: qemu-devel@nongnu.org Date: Mon, 5 Nov 2018 02:40:45 +0100 Message-Id: <20181105014047.26447-23-sameo@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.88 Subject: [Qemu-devel] [PATCH v5 22/24] hw: pci-host: piix: Return PCI host pointer instead of PCI bus X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Shannon Zhao , Igor Mammedov , qemu-arm@nongnu.org, Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson Errors-To: qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-devel" X-TUID: KNhCCHKP+0jf For building the MCFG table, we need to track a given machine type PCI host pointer, and we can't get it from the bus pointer alone. As piix returns a PCI bus pointer, we simply modify its builder to return a PCI host pointer instead. Signed-off-by: Samuel Ortiz --- include/hw/i386/pc.h | 21 +++++++++++---------- hw/i386/pc_piix.c | 18 +++++++++++------- hw/pci-host/piix.c | 24 ++++++++++++------------ 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 8e5f1464eb..b6b79e146d 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -244,16 +244,17 @@ typedef struct PCII440FXState PCII440FXState; */ #define RCR_IOPORT 0xcf9 -PCIBus *i440fx_init(const char *host_type, const char *pci_type, - PCII440FXState **pi440fx_state, int *piix_devfn, - ISABus **isa_bus, qemu_irq *pic, - MemoryRegion *address_space_mem, - MemoryRegion *address_space_io, - ram_addr_t ram_size, - ram_addr_t below_4g_mem_size, - ram_addr_t above_4g_mem_size, - MemoryRegion *pci_memory, - MemoryRegion *ram_memory); +struct PCIHostState *i440fx_init(const char *host_type, const char *pci_type, + PCII440FXState **pi440fx_state, + int *piix_devfn, + ISABus **isa_bus, qemu_irq *pic, + MemoryRegion *address_space_mem, + MemoryRegion *address_space_io, + ram_addr_t ram_size, + ram_addr_t below_4g_mem_size, + ram_addr_t above_4g_mem_size, + MemoryRegion *pci_memory, + MemoryRegion *ram_memory); /* piix4.c */ extern PCIDevice *piix4_dev; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 0620d10715..f5b139a3eb 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -32,6 +32,7 @@ #include "hw/display/ramfb.h" #include "hw/smbios/smbios.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_host.h" #include "hw/pci/pci_ids.h" #include "hw/usb.h" #include "net/net.h" @@ -75,6 +76,7 @@ static void pc_init1(MachineState *machine, MemoryRegion *system_memory = get_system_memory(); MemoryRegion *system_io = get_system_io(); int i; + struct PCIHostState *pci_host; PCIBus *pci_bus; ISABus *isa_bus; PCII440FXState *i440fx_state; @@ -196,15 +198,17 @@ static void pc_init1(MachineState *machine, } if (pcmc->pci_enabled) { - pci_bus = i440fx_init(host_type, - pci_type, - &i440fx_state, &piix3_devfn, &isa_bus, pcms->gsi, - system_memory, system_io, machine->ram_size, - acpi_conf->below_4g_mem_size, - acpi_conf->above_4g_mem_size, - pci_memory, ram_memory); + pci_host = i440fx_init(host_type, + pci_type, + &i440fx_state, &piix3_devfn, &isa_bus, pcms->gsi, + system_memory, system_io, machine->ram_size, + acpi_conf->below_4g_mem_size, + acpi_conf->above_4g_mem_size, + pci_memory, ram_memory); + pci_bus = pci_host->bus; pcms->bus = pci_bus; } else { + pci_host = NULL; pci_bus = NULL; i440fx_state = NULL; isa_bus = isa_bus_new(NULL, get_system_memory(), system_io, diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c index 658460264b..4a412db44c 100644 --- a/hw/pci-host/piix.c +++ b/hw/pci-host/piix.c @@ -342,17 +342,17 @@ static void i440fx_realize(PCIDevice *dev, Error **errp) } } -PCIBus *i440fx_init(const char *host_type, const char *pci_type, - PCII440FXState **pi440fx_state, - int *piix3_devfn, - ISABus **isa_bus, qemu_irq *pic, - MemoryRegion *address_space_mem, - MemoryRegion *address_space_io, - ram_addr_t ram_size, - ram_addr_t below_4g_mem_size, - ram_addr_t above_4g_mem_size, - MemoryRegion *pci_address_space, - MemoryRegion *ram_memory) +struct PCIHostState *i440fx_init(const char *host_type, const char *pci_type, + PCII440FXState **pi440fx_state, + int *piix3_devfn, + ISABus **isa_bus, qemu_irq *pic, + MemoryRegion *address_space_mem, + MemoryRegion *address_space_io, + ram_addr_t ram_size, + ram_addr_t below_4g_mem_size, + ram_addr_t above_4g_mem_size, + MemoryRegion *pci_address_space, + MemoryRegion *ram_memory) { DeviceState *dev; PCIBus *b; @@ -442,7 +442,7 @@ PCIBus *i440fx_init(const char *host_type, const char *pci_type, i440fx_update_memory_mappings(f); - return b; + return s; } /* PIIX3 PCI to ISA bridge */ -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Ortiz Subject: [PATCH v5 22/24] hw: pci-host: piix: Return PCI host pointer instead of PCI bus Date: Mon, 5 Nov 2018 02:40:45 +0100 Message-ID: <20181105014047.26447-23-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gJTvU-0004ip-Ty for xen-devel@lists.xenproject.org; Mon, 05 Nov 2018 01:43:36 +0000 In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Shannon Zhao , Igor Mammedov , qemu-arm@nongnu.org, Marcel Apfelbaum , Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson List-Id: xen-devel@lists.xenproject.org Rm9yIGJ1aWxkaW5nIHRoZSBNQ0ZHIHRhYmxlLCB3ZSBuZWVkIHRvIHRyYWNrIGEgZ2l2ZW4gbWFj aGluZQp0eXBlIFBDSSBob3N0IHBvaW50ZXIsIGFuZCB3ZSBjYW4ndCBnZXQgaXQgZnJvbSB0aGUg YnVzIHBvaW50ZXIgYWxvbmUuCkFzIHBpaXggcmV0dXJucyBhIFBDSSBidXMgcG9pbnRlciwgd2Ug c2ltcGx5IG1vZGlmeSBpdHMgYnVpbGRlciB0bwpyZXR1cm4gYSBQQ0kgaG9zdCBwb2ludGVyIGlu c3RlYWQuCgpTaWduZWQtb2ZmLWJ5OiBTYW11ZWwgT3J0aXogPHNhbWVvQGxpbnV4LmludGVsLmNv bT4KLS0tCiBpbmNsdWRlL2h3L2kzODYvcGMuaCB8IDIxICsrKysrKysrKysrLS0tLS0tLS0tLQog aHcvaTM4Ni9wY19waWl4LmMgICAgfCAxOCArKysrKysrKysrKy0tLS0tLS0KIGh3L3BjaS1ob3N0 L3BpaXguYyAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQs IDM0IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv aHcvaTM4Ni9wYy5oIGIvaW5jbHVkZS9ody9pMzg2L3BjLmgKaW5kZXggOGU1ZjE0NjRlYi4uYjZi NzllMTQ2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody9pMzg2L3BjLmgKKysrIGIvaW5jbHVkZS9o dy9pMzg2L3BjLmgKQEAgLTI0NCwxNiArMjQ0LDE3IEBAIHR5cGVkZWYgc3RydWN0IFBDSUk0NDBG WFN0YXRlIFBDSUk0NDBGWFN0YXRlOwogICovCiAjZGVmaW5lIFJDUl9JT1BPUlQgMHhjZjkKIAot UENJQnVzICppNDQwZnhfaW5pdChjb25zdCBjaGFyICpob3N0X3R5cGUsIGNvbnN0IGNoYXIgKnBj aV90eXBlLAotICAgICAgICAgICAgICAgICAgICBQQ0lJNDQwRlhTdGF0ZSAqKnBpNDQwZnhfc3Rh dGUsIGludCAqcGlpeF9kZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgSVNBQnVzICoqaXNhX2J1 cywgcWVtdV9pcnEgKnBpYywKLSAgICAgICAgICAgICAgICAgICAgTWVtb3J5UmVnaW9uICphZGRy ZXNzX3NwYWNlX21lbSwKLSAgICAgICAgICAgICAgICAgICAgTWVtb3J5UmVnaW9uICphZGRyZXNz X3NwYWNlX2lvLAotICAgICAgICAgICAgICAgICAgICByYW1fYWRkcl90IHJhbV9zaXplLAotICAg ICAgICAgICAgICAgICAgICByYW1fYWRkcl90IGJlbG93XzRnX21lbV9zaXplLAotICAgICAgICAg ICAgICAgICAgICByYW1fYWRkcl90IGFib3ZlXzRnX21lbV9zaXplLAotICAgICAgICAgICAgICAg ICAgICBNZW1vcnlSZWdpb24gKnBjaV9tZW1vcnksCi0gICAgICAgICAgICAgICAgICAgIE1lbW9y eVJlZ2lvbiAqcmFtX21lbW9yeSk7CitzdHJ1Y3QgUENJSG9zdFN0YXRlICppNDQwZnhfaW5pdChj b25zdCBjaGFyICpob3N0X3R5cGUsIGNvbnN0IGNoYXIgKnBjaV90eXBlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUENJSTQ0MEZYU3RhdGUgKipwaTQ0MGZ4X3N0YXRlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpwaWl4X2RldmZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVNBQnVzICoqaXNhX2J1cywgcWVtdV9pcnEgKnBpYywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeVJlZ2lvbiAqYWRkcmVzc19z cGFjZV9tZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnlSZWdpb24g KmFkZHJlc3Nfc3BhY2VfaW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW1f YWRkcl90IHJhbV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFtX2Fk ZHJfdCBiZWxvd180Z19tZW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJhbV9hZGRyX3QgYWJvdmVfNGdfbWVtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNZW1vcnlSZWdpb24gKnBjaV9tZW1vcnksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNZW1vcnlSZWdpb24gKnJhbV9tZW1vcnkpOwogCiAvKiBwaWl4NC5jICovCiBl eHRlcm4gUENJRGV2aWNlICpwaWl4NF9kZXY7CmRpZmYgLS1naXQgYS9ody9pMzg2L3BjX3BpaXgu YyBiL2h3L2kzODYvcGNfcGlpeC5jCmluZGV4IDA2MjBkMTA3MTUuLmY1YjEzOWEzZWIgMTAwNjQ0 Ci0tLSBhL2h3L2kzODYvcGNfcGlpeC5jCisrKyBiL2h3L2kzODYvcGNfcGlpeC5jCkBAIC0zMiw2 ICszMiw3IEBACiAjaW5jbHVkZSAiaHcvZGlzcGxheS9yYW1mYi5oIgogI2luY2x1ZGUgImh3L3Nt Ymlvcy9zbWJpb3MuaCIKICNpbmNsdWRlICJody9wY2kvcGNpLmgiCisjaW5jbHVkZSAiaHcvcGNp L3BjaV9ob3N0LmgiCiAjaW5jbHVkZSAiaHcvcGNpL3BjaV9pZHMuaCIKICNpbmNsdWRlICJody91 c2IuaCIKICNpbmNsdWRlICJuZXQvbmV0LmgiCkBAIC03NSw2ICs3Niw3IEBAIHN0YXRpYyB2b2lk IHBjX2luaXQxKE1hY2hpbmVTdGF0ZSAqbWFjaGluZSwKICAgICBNZW1vcnlSZWdpb24gKnN5c3Rl bV9tZW1vcnkgPSBnZXRfc3lzdGVtX21lbW9yeSgpOwogICAgIE1lbW9yeVJlZ2lvbiAqc3lzdGVt X2lvID0gZ2V0X3N5c3RlbV9pbygpOwogICAgIGludCBpOworICAgIHN0cnVjdCBQQ0lIb3N0U3Rh dGUgKnBjaV9ob3N0OwogICAgIFBDSUJ1cyAqcGNpX2J1czsKICAgICBJU0FCdXMgKmlzYV9idXM7 CiAgICAgUENJSTQ0MEZYU3RhdGUgKmk0NDBmeF9zdGF0ZTsKQEAgLTE5NiwxNSArMTk4LDE3IEBA IHN0YXRpYyB2b2lkIHBjX2luaXQxKE1hY2hpbmVTdGF0ZSAqbWFjaGluZSwKICAgICB9CiAKICAg ICBpZiAocGNtYy0+cGNpX2VuYWJsZWQpIHsKLSAgICAgICAgcGNpX2J1cyA9IGk0NDBmeF9pbml0 KGhvc3RfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV90eXBlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmk0NDBmeF9zdGF0ZSwgJnBpaXgzX2RldmZuLCAm aXNhX2J1cywgcGNtcy0+Z3NpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVt X21lbW9yeSwgc3lzdGVtX2lvLCBtYWNoaW5lLT5yYW1fc2l6ZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFjcGlfY29uZi0+YmVsb3dfNGdfbWVtX3NpemUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhY3BpX2NvbmYtPmFib3ZlXzRnX21lbV9zaXplLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGNpX21lbW9yeSwgcmFtX21lbW9yeSk7CisgICAgICAgIHBj aV9ob3N0ID0gaTQ0MGZ4X2luaXQoaG9zdF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBjaV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpNDQwZnhf c3RhdGUsICZwaWl4M19kZXZmbiwgJmlzYV9idXMsIHBjbXMtPmdzaSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzeXN0ZW1fbWVtb3J5LCBzeXN0ZW1faW8sIG1hY2hpbmUtPnJhbV9z aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjcGlfY29uZi0+YmVsb3dfNGdf bWVtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNwaV9jb25mLT5hYm92 ZV80Z19tZW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfbWVtb3J5 LCByYW1fbWVtb3J5KTsKKyAgICAgICAgcGNpX2J1cyA9IHBjaV9ob3N0LT5idXM7CiAgICAgICAg IHBjbXMtPmJ1cyA9IHBjaV9idXM7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgcGNpX2hvc3QgPSBO VUxMOwogICAgICAgICBwY2lfYnVzID0gTlVMTDsKICAgICAgICAgaTQ0MGZ4X3N0YXRlID0gTlVM TDsKICAgICAgICAgaXNhX2J1cyA9IGlzYV9idXNfbmV3KE5VTEwsIGdldF9zeXN0ZW1fbWVtb3J5 KCksIHN5c3RlbV9pbywKZGlmZiAtLWdpdCBhL2h3L3BjaS1ob3N0L3BpaXguYyBiL2h3L3BjaS1o b3N0L3BpaXguYwppbmRleCA2NTg0NjAyNjRiLi40YTQxMmRiNDRjIDEwMDY0NAotLS0gYS9ody9w Y2ktaG9zdC9waWl4LmMKKysrIGIvaHcvcGNpLWhvc3QvcGlpeC5jCkBAIC0zNDIsMTcgKzM0Miwx NyBAQCBzdGF0aWMgdm9pZCBpNDQwZnhfcmVhbGl6ZShQQ0lEZXZpY2UgKmRldiwgRXJyb3IgKipl cnJwKQogICAgIH0KIH0KIAotUENJQnVzICppNDQwZnhfaW5pdChjb25zdCBjaGFyICpob3N0X3R5 cGUsIGNvbnN0IGNoYXIgKnBjaV90eXBlLAotICAgICAgICAgICAgICAgICAgICBQQ0lJNDQwRlhT dGF0ZSAqKnBpNDQwZnhfc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgIGludCAqcGlpeDNfZGV2 Zm4sCi0gICAgICAgICAgICAgICAgICAgIElTQUJ1cyAqKmlzYV9idXMsIHFlbXVfaXJxICpwaWMs Ci0gICAgICAgICAgICAgICAgICAgIE1lbW9yeVJlZ2lvbiAqYWRkcmVzc19zcGFjZV9tZW0sCi0g ICAgICAgICAgICAgICAgICAgIE1lbW9yeVJlZ2lvbiAqYWRkcmVzc19zcGFjZV9pbywKLSAgICAg ICAgICAgICAgICAgICAgcmFtX2FkZHJfdCByYW1fc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAg cmFtX2FkZHJfdCBiZWxvd180Z19tZW1fc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgcmFtX2Fk ZHJfdCBhYm92ZV80Z19tZW1fc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgTWVtb3J5UmVnaW9u ICpwY2lfYWRkcmVzc19zcGFjZSwKLSAgICAgICAgICAgICAgICAgICAgTWVtb3J5UmVnaW9uICpy YW1fbWVtb3J5KQorc3RydWN0IFBDSUhvc3RTdGF0ZSAqaTQ0MGZ4X2luaXQoY29uc3QgY2hhciAq aG9zdF90eXBlLCBjb25zdCBjaGFyICpwY2lfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSUk0NDBGWFN0YXRlICoqcGk0NDBmeF9zdGF0ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAqcGlpeDNfZGV2Zm4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJU0FCdXMgKippc2FfYnVzLCBxZW11X2lycSAqcGljLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5UmVnaW9uICphZGRyZXNzX3NwYWNlX21lbSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeVJlZ2lvbiAqYWRkcmVzc19z cGFjZV9pbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbV9hZGRyX3QgcmFt X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW1fYWRkcl90IGJlbG93 XzRnX21lbV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFtX2FkZHJf dCBhYm92ZV80Z19tZW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1l bW9yeVJlZ2lvbiAqcGNpX2FkZHJlc3Nfc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNZW1vcnlSZWdpb24gKnJhbV9tZW1vcnkpCiB7CiAgICAgRGV2aWNlU3RhdGUgKmRl djsKICAgICBQQ0lCdXMgKmI7CkBAIC00NDIsNyArNDQyLDcgQEAgUENJQnVzICppNDQwZnhfaW5p dChjb25zdCBjaGFyICpob3N0X3R5cGUsIGNvbnN0IGNoYXIgKnBjaV90eXBlLAogCiAgICAgaTQ0 MGZ4X3VwZGF0ZV9tZW1vcnlfbWFwcGluZ3MoZik7CiAKLSAgICByZXR1cm4gYjsKKyAgICByZXR1 cm4gczsKIH0KIAogLyogUElJWDMgUENJIHRvIElTQSBicmlkZ2UgKi8KLS0gCjIuMTkuMQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTvi-0000xe-FS for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:43:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJTvd-0003os-5F for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:43:50 -0500 From: Samuel Ortiz Date: Mon, 5 Nov 2018 02:40:45 +0100 Message-Id: <20181105014047.26447-23-sameo@linux.intel.com> In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v5 22/24] hw: pci-host: piix: Return PCI host pointer instead of PCI bus List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Shannon Zhao , Stefano Stabellini , Anthony Perard , Richard Henderson , Marcel Apfelbaum , xen-devel@lists.xenproject.org, Paolo Bonzini , "Michael S. Tsirkin" , Igor Mammedov , qemu-arm@nongnu.org, Peter Maydell , Eduardo Habkost For building the MCFG table, we need to track a given machine type PCI host pointer, and we can't get it from the bus pointer alone. As piix returns a PCI bus pointer, we simply modify its builder to return a PCI host pointer instead. Signed-off-by: Samuel Ortiz --- include/hw/i386/pc.h | 21 +++++++++++---------- hw/i386/pc_piix.c | 18 +++++++++++------- hw/pci-host/piix.c | 24 ++++++++++++------------ 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 8e5f1464eb..b6b79e146d 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -244,16 +244,17 @@ typedef struct PCII440FXState PCII440FXState; */ #define RCR_IOPORT 0xcf9 -PCIBus *i440fx_init(const char *host_type, const char *pci_type, - PCII440FXState **pi440fx_state, int *piix_devfn, - ISABus **isa_bus, qemu_irq *pic, - MemoryRegion *address_space_mem, - MemoryRegion *address_space_io, - ram_addr_t ram_size, - ram_addr_t below_4g_mem_size, - ram_addr_t above_4g_mem_size, - MemoryRegion *pci_memory, - MemoryRegion *ram_memory); +struct PCIHostState *i440fx_init(const char *host_type, const char *pci_type, + PCII440FXState **pi440fx_state, + int *piix_devfn, + ISABus **isa_bus, qemu_irq *pic, + MemoryRegion *address_space_mem, + MemoryRegion *address_space_io, + ram_addr_t ram_size, + ram_addr_t below_4g_mem_size, + ram_addr_t above_4g_mem_size, + MemoryRegion *pci_memory, + MemoryRegion *ram_memory); /* piix4.c */ extern PCIDevice *piix4_dev; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 0620d10715..f5b139a3eb 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -32,6 +32,7 @@ #include "hw/display/ramfb.h" #include "hw/smbios/smbios.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_host.h" #include "hw/pci/pci_ids.h" #include "hw/usb.h" #include "net/net.h" @@ -75,6 +76,7 @@ static void pc_init1(MachineState *machine, MemoryRegion *system_memory = get_system_memory(); MemoryRegion *system_io = get_system_io(); int i; + struct PCIHostState *pci_host; PCIBus *pci_bus; ISABus *isa_bus; PCII440FXState *i440fx_state; @@ -196,15 +198,17 @@ static void pc_init1(MachineState *machine, } if (pcmc->pci_enabled) { - pci_bus = i440fx_init(host_type, - pci_type, - &i440fx_state, &piix3_devfn, &isa_bus, pcms->gsi, - system_memory, system_io, machine->ram_size, - acpi_conf->below_4g_mem_size, - acpi_conf->above_4g_mem_size, - pci_memory, ram_memory); + pci_host = i440fx_init(host_type, + pci_type, + &i440fx_state, &piix3_devfn, &isa_bus, pcms->gsi, + system_memory, system_io, machine->ram_size, + acpi_conf->below_4g_mem_size, + acpi_conf->above_4g_mem_size, + pci_memory, ram_memory); + pci_bus = pci_host->bus; pcms->bus = pci_bus; } else { + pci_host = NULL; pci_bus = NULL; i440fx_state = NULL; isa_bus = isa_bus_new(NULL, get_system_memory(), system_io, diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c index 658460264b..4a412db44c 100644 --- a/hw/pci-host/piix.c +++ b/hw/pci-host/piix.c @@ -342,17 +342,17 @@ static void i440fx_realize(PCIDevice *dev, Error **errp) } } -PCIBus *i440fx_init(const char *host_type, const char *pci_type, - PCII440FXState **pi440fx_state, - int *piix3_devfn, - ISABus **isa_bus, qemu_irq *pic, - MemoryRegion *address_space_mem, - MemoryRegion *address_space_io, - ram_addr_t ram_size, - ram_addr_t below_4g_mem_size, - ram_addr_t above_4g_mem_size, - MemoryRegion *pci_address_space, - MemoryRegion *ram_memory) +struct PCIHostState *i440fx_init(const char *host_type, const char *pci_type, + PCII440FXState **pi440fx_state, + int *piix3_devfn, + ISABus **isa_bus, qemu_irq *pic, + MemoryRegion *address_space_mem, + MemoryRegion *address_space_io, + ram_addr_t ram_size, + ram_addr_t below_4g_mem_size, + ram_addr_t above_4g_mem_size, + MemoryRegion *pci_address_space, + MemoryRegion *ram_memory) { DeviceState *dev; PCIBus *b; @@ -442,7 +442,7 @@ PCIBus *i440fx_init(const char *host_type, const char *pci_type, i440fx_update_memory_mappings(f); - return b; + return s; } /* PIIX3 PCI to ISA bridge */ -- 2.19.1