From nobody Mon Feb 9 07:23:04 2026 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571157173; cv=none; d=zoho.com; s=zohoarc; b=m12KwoVD+zz8O3Y0CopLFBNLT/lkRtuyXhR295hFu7UECcXgwezJyvlb0vuwOhcr2B0Uzb587VNhGdWQDaeWBSo2P4UiCMha3bTuol0J9kdPcF+RnyQ6V58sNC12pnfltlgj4sZyZxwPaowbwBcue81STCIIGisZRqe6WUQekzg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571157173; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TLWZ14UMl676ydz6KRvEHytQ032nTytCKG1GMz06Mlg=; b=GZJ9PkJDGWXiNDkIK4AZRmvRj+W/DGy7TOCy1X3BXzFK22VLKT7iUqS7zb0zI0DbWmL180swuZB5Vm0YCpmXhvS/XA2DE52wJzQafWmH7pNB6pCrUfSq9ttK6WkajH3ReGkocnYDasbC5egkgLq+9YbOw0Ei9D11NISn34rEp0I= ARC-Authentication-Results: i=1; mx.zoho.com; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1571157173230435.20552234111074; Tue, 15 Oct 2019 09:32:53 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iKPjl-0005aE-7E; Tue, 15 Oct 2019 16:31:53 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iKPjk-0005Zl-Hv for xen-devel@lists.xenproject.org; Tue, 15 Oct 2019 16:31:52 +0000 Received: from mx1.redhat.com (unknown [209.132.183.28]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 4ae4574e-ef69-11e9-9397-12813bfff9fa; Tue, 15 Oct 2019 16:31:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8B7FE8AC6F5; Tue, 15 Oct 2019 16:31:51 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-35.brq.redhat.com [10.40.204.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D974419C58; Tue, 15 Oct 2019 16:31:37 +0000 (UTC) X-Inumbo-ID: 4ae4574e-ef69-11e9-9397-12813bfff9fa From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Tue, 15 Oct 2019 18:26:56 +0200 Message-Id: <20191015162705.28087-24-philmd@redhat.com> In-Reply-To: <20191015162705.28087-1-philmd@redhat.com> References: <20191015162705.28087-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.69]); Tue, 15 Oct 2019 16:31:51 +0000 (UTC) Subject: [Xen-devel] [PATCH 23/32] hw/i386/pc: Extract pc_i8259_create() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Thomas Huth , Stefano Stabellini , Eduardo Habkost , kvm@vger.kernel.org, Paul Durrant , "Michael S. Tsirkin" , Marcel Apfelbaum , Paolo Bonzini , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Aleksandar Markovic , xen-devel@lists.xenproject.org, Anthony Perard , Igor Mammedov , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Richard Henderson Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" The i8259 creation code is common to all PC machines, extract the common code. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/i386/pc.c | 19 +++++++++++++++++++ hw/i386/pc_piix.c | 13 +------------ hw/i386/pc_q35.c | 14 +------------- include/hw/i386/pc.h | 1 + 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 59de0c8a1f..2b6a52f23b 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1978,6 +1978,25 @@ void pc_nic_init(PCMachineClass *pcmc, ISABus *isa_b= us, PCIBus *pci_bus) rom_reset_order_override(); } =20 +void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs) +{ + qemu_irq *i8259; + + if (kvm_pic_in_kernel()) { + i8259 =3D kvm_i8259_init(isa_bus); + } else if (xen_enabled()) { + i8259 =3D xen_interrupt_controller_init(); + } else { + i8259 =3D i8259_init(isa_bus, pc_allocate_cpu_irq()); + } + + for (size_t i =3D 0; i < ISA_NUM_IRQS; i++) { + i8259_irqs[i] =3D i8259[i]; + } + + g_free(i8259); +} + void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name) { DeviceState *dev; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 452b107e1b..0a7193a3cc 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -81,7 +81,6 @@ static void pc_init1(MachineState *machine, ISABus *isa_bus; PCII440FXState *i440fx_state; int piix3_devfn =3D -1; - qemu_irq *i8259; qemu_irq smi_irq; GSIState *gsi_state; DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; @@ -208,18 +207,8 @@ static void pc_init1(MachineState *machine, } isa_bus_irqs(isa_bus, pcms->gsi); =20 - if (kvm_pic_in_kernel()) { - i8259 =3D kvm_i8259_init(isa_bus); - } else if (xen_enabled()) { - i8259 =3D xen_interrupt_controller_init(); - } else { - i8259 =3D i8259_init(isa_bus, pc_allocate_cpu_irq()); - } + pc_i8259_create(isa_bus, gsi_state->i8259_irq); =20 - for (i =3D 0; i < ISA_NUM_IRQS; i++) { - gsi_state->i8259_irq[i] =3D i8259[i]; - } - g_free(i8259); if (pcmc->pci_enabled) { ioapic_init_gsi(gsi_state, "i440fx"); } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 6d096eff28..f4fb9a02ba 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -128,7 +128,6 @@ static void pc_q35_init(MachineState *machine) MemoryRegion *ram_memory; GSIState *gsi_state; ISABus *isa_bus; - qemu_irq *i8259; int i; ICH9LPCState *ich9_lpc; PCIDevice *ahci; @@ -255,18 +254,7 @@ static void pc_q35_init(MachineState *machine) pci_bus_set_route_irq_fn(host_bus, ich9_route_intx_pin_to_irq); isa_bus =3D ich9_lpc->isa_bus; =20 - if (kvm_pic_in_kernel()) { - i8259 =3D kvm_i8259_init(isa_bus); - } else if (xen_enabled()) { - i8259 =3D xen_interrupt_controller_init(); - } else { - i8259 =3D i8259_init(isa_bus, pc_allocate_cpu_irq()); - } - - for (i =3D 0; i < ISA_NUM_IRQS; i++) { - gsi_state->i8259_irq[i] =3D i8259[i]; - } - g_free(i8259); + pc_i8259_create(isa_bus, gsi_state->i8259_irq); =20 if (pcmc->pci_enabled) { ioapic_init_gsi(gsi_state, "q35"); diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 75b44e156c..183326d9fe 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -235,6 +235,7 @@ void pc_pci_device_init(PCIBus *pci_bus); =20 typedef void (*cpu_set_smm_t)(int smm, void *arg); =20 +void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs); void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name); =20 ISADevice *pc_find_fdc0(void); --=20 2.21.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel