From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 29DDEECE588 for ; Tue, 15 Oct 2019 16:32:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 02FA82086A for ; Tue, 15 Oct 2019 16:32:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 02FA82086A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org 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 X-Inumbo-ID: 4ae4574e-ef69-11e9-9397-12813bfff9fa 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) 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: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhlIGk4MjU5IGNyZWF0aW9uIGNvZGUgaXMgY29tbW9uIHRvIGFsbCBQQyBtYWNoaW5lcywgZXh0 cmFjdCB0aGUKY29tbW9uIGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBQaGlsaXBwZSBNYXRoaWV1LURh dWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+Ci0tLQogaHcvaTM4Ni9wYy5jICAgICAgICAgfCAxOSAr KysrKysrKysrKysrKysrKysrCiBody9pMzg2L3BjX3BpaXguYyAgICB8IDEzICstLS0tLS0tLS0t LS0KIGh3L2kzODYvcGNfcTM1LmMgICAgIHwgMTQgKy0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvaHcv aTM4Ni9wYy5oIHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ody9pMzg2L3BjLmMgYi9ody9pMzg2L3BjLmMKaW5k ZXggNTlkZTBjOGExZi4uMmI2YTUyZjIzYiAxMDA2NDQKLS0tIGEvaHcvaTM4Ni9wYy5jCisrKyBi L2h3L2kzODYvcGMuYwpAQCAtMTk3OCw2ICsxOTc4LDI1IEBAIHZvaWQgcGNfbmljX2luaXQoUENN YWNoaW5lQ2xhc3MgKnBjbWMsIElTQUJ1cyAqaXNhX2J1cywgUENJQnVzICpwY2lfYnVzKQogICAg IHJvbV9yZXNldF9vcmRlcl9vdmVycmlkZSgpOwogfQogCit2b2lkIHBjX2k4MjU5X2NyZWF0ZShJ U0FCdXMgKmlzYV9idXMsIHFlbXVfaXJxICppODI1OV9pcnFzKQoreworICAgIHFlbXVfaXJxICpp ODI1OTsKKworICAgIGlmIChrdm1fcGljX2luX2tlcm5lbCgpKSB7CisgICAgICAgIGk4MjU5ID0g a3ZtX2k4MjU5X2luaXQoaXNhX2J1cyk7CisgICAgfSBlbHNlIGlmICh4ZW5fZW5hYmxlZCgpKSB7 CisgICAgICAgIGk4MjU5ID0geGVuX2ludGVycnVwdF9jb250cm9sbGVyX2luaXQoKTsKKyAgICB9 IGVsc2UgeworICAgICAgICBpODI1OSA9IGk4MjU5X2luaXQoaXNhX2J1cywgcGNfYWxsb2NhdGVf Y3B1X2lycSgpKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IElTQV9OVU1f SVJRUzsgaSsrKSB7CisgICAgICAgIGk4MjU5X2lycXNbaV0gPSBpODI1OVtpXTsKKyAgICB9CisK KyAgICBnX2ZyZWUoaTgyNTkpOworfQorCiB2b2lkIGlvYXBpY19pbml0X2dzaShHU0lTdGF0ZSAq Z3NpX3N0YXRlLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSkKIHsKICAgICBEZXZpY2VTdGF0ZSAq ZGV2OwpkaWZmIC0tZ2l0IGEvaHcvaTM4Ni9wY19waWl4LmMgYi9ody9pMzg2L3BjX3BpaXguYwpp bmRleCA0NTJiMTA3ZTFiLi4wYTcxOTNhM2NjIDEwMDY0NAotLS0gYS9ody9pMzg2L3BjX3BpaXgu YworKysgYi9ody9pMzg2L3BjX3BpaXguYwpAQCAtODEsNyArODEsNiBAQCBzdGF0aWMgdm9pZCBw Y19pbml0MShNYWNoaW5lU3RhdGUgKm1hY2hpbmUsCiAgICAgSVNBQnVzICppc2FfYnVzOwogICAg IFBDSUk0NDBGWFN0YXRlICppNDQwZnhfc3RhdGU7CiAgICAgaW50IHBpaXgzX2RldmZuID0gLTE7 Ci0gICAgcWVtdV9pcnEgKmk4MjU5OwogICAgIHFlbXVfaXJxIHNtaV9pcnE7CiAgICAgR1NJU3Rh dGUgKmdzaV9zdGF0ZTsKICAgICBEcml2ZUluZm8gKmhkW01BWF9JREVfQlVTICogTUFYX0lERV9E RVZTXTsKQEAgLTIwOCwxOCArMjA3LDggQEAgc3RhdGljIHZvaWQgcGNfaW5pdDEoTWFjaGluZVN0 YXRlICptYWNoaW5lLAogICAgIH0KICAgICBpc2FfYnVzX2lycXMoaXNhX2J1cywgcGNtcy0+Z3Np KTsKIAotICAgIGlmIChrdm1fcGljX2luX2tlcm5lbCgpKSB7Ci0gICAgICAgIGk4MjU5ID0ga3Zt X2k4MjU5X2luaXQoaXNhX2J1cyk7Ci0gICAgfSBlbHNlIGlmICh4ZW5fZW5hYmxlZCgpKSB7Ci0g ICAgICAgIGk4MjU5ID0geGVuX2ludGVycnVwdF9jb250cm9sbGVyX2luaXQoKTsKLSAgICB9IGVs c2UgewotICAgICAgICBpODI1OSA9IGk4MjU5X2luaXQoaXNhX2J1cywgcGNfYWxsb2NhdGVfY3B1 X2lycSgpKTsKLSAgICB9CisgICAgcGNfaTgyNTlfY3JlYXRlKGlzYV9idXMsIGdzaV9zdGF0ZS0+ aTgyNTlfaXJxKTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBJU0FfTlVNX0lSUVM7IGkrKykgewot ICAgICAgICBnc2lfc3RhdGUtPmk4MjU5X2lycVtpXSA9IGk4MjU5W2ldOwotICAgIH0KLSAgICBn X2ZyZWUoaTgyNTkpOwogICAgIGlmIChwY21jLT5wY2lfZW5hYmxlZCkgewogICAgICAgICBpb2Fw aWNfaW5pdF9nc2koZ3NpX3N0YXRlLCAiaTQ0MGZ4Iik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvaHcv aTM4Ni9wY19xMzUuYyBiL2h3L2kzODYvcGNfcTM1LmMKaW5kZXggNmQwOTZlZmYyOC4uZjRmYjlh MDJiYSAxMDA2NDQKLS0tIGEvaHcvaTM4Ni9wY19xMzUuYworKysgYi9ody9pMzg2L3BjX3EzNS5j CkBAIC0xMjgsNyArMTI4LDYgQEAgc3RhdGljIHZvaWQgcGNfcTM1X2luaXQoTWFjaGluZVN0YXRl ICptYWNoaW5lKQogICAgIE1lbW9yeVJlZ2lvbiAqcmFtX21lbW9yeTsKICAgICBHU0lTdGF0ZSAq Z3NpX3N0YXRlOwogICAgIElTQUJ1cyAqaXNhX2J1czsKLSAgICBxZW11X2lycSAqaTgyNTk7CiAg ICAgaW50IGk7CiAgICAgSUNIOUxQQ1N0YXRlICppY2g5X2xwYzsKICAgICBQQ0lEZXZpY2UgKmFo Y2k7CkBAIC0yNTUsMTggKzI1NCw3IEBAIHN0YXRpYyB2b2lkIHBjX3EzNV9pbml0KE1hY2hpbmVT dGF0ZSAqbWFjaGluZSkKICAgICBwY2lfYnVzX3NldF9yb3V0ZV9pcnFfZm4oaG9zdF9idXMsIGlj aDlfcm91dGVfaW50eF9waW5fdG9faXJxKTsKICAgICBpc2FfYnVzID0gaWNoOV9scGMtPmlzYV9i dXM7CiAKLSAgICBpZiAoa3ZtX3BpY19pbl9rZXJuZWwoKSkgewotICAgICAgICBpODI1OSA9IGt2 bV9pODI1OV9pbml0KGlzYV9idXMpOwotICAgIH0gZWxzZSBpZiAoeGVuX2VuYWJsZWQoKSkgewot ICAgICAgICBpODI1OSA9IHhlbl9pbnRlcnJ1cHRfY29udHJvbGxlcl9pbml0KCk7Ci0gICAgfSBl bHNlIHsKLSAgICAgICAgaTgyNTkgPSBpODI1OV9pbml0KGlzYV9idXMsIHBjX2FsbG9jYXRlX2Nw dV9pcnEoKSk7Ci0gICAgfQotCi0gICAgZm9yIChpID0gMDsgaSA8IElTQV9OVU1fSVJRUzsgaSsr KSB7Ci0gICAgICAgIGdzaV9zdGF0ZS0+aTgyNTlfaXJxW2ldID0gaTgyNTlbaV07Ci0gICAgfQot ICAgIGdfZnJlZShpODI1OSk7CisgICAgcGNfaTgyNTlfY3JlYXRlKGlzYV9idXMsIGdzaV9zdGF0 ZS0+aTgyNTlfaXJxKTsKIAogICAgIGlmIChwY21jLT5wY2lfZW5hYmxlZCkgewogICAgICAgICBp b2FwaWNfaW5pdF9nc2koZ3NpX3N0YXRlLCAicTM1Iik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3 L2kzODYvcGMuaCBiL2luY2x1ZGUvaHcvaTM4Ni9wYy5oCmluZGV4IDc1YjQ0ZTE1NmMuLjE4MzMy NmQ5ZmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaHcvaTM4Ni9wYy5oCisrKyBiL2luY2x1ZGUvaHcv aTM4Ni9wYy5oCkBAIC0yMzUsNiArMjM1LDcgQEAgdm9pZCBwY19wY2lfZGV2aWNlX2luaXQoUENJ QnVzICpwY2lfYnVzKTsKIAogdHlwZWRlZiB2b2lkICgqY3B1X3NldF9zbW1fdCkoaW50IHNtbSwg dm9pZCAqYXJnKTsKIAordm9pZCBwY19pODI1OV9jcmVhdGUoSVNBQnVzICppc2FfYnVzLCBxZW11 X2lycSAqaTgyNTlfaXJxcyk7CiB2b2lkIGlvYXBpY19pbml0X2dzaShHU0lTdGF0ZSAqZ3NpX3N0 YXRlLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSk7CiAKIElTQURldmljZSAqcGNfZmluZF9mZGMw KHZvaWQpOwotLSAKMi4yMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3308C10F14 for ; Tue, 15 Oct 2019 16:31:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7D91920872 for ; Tue, 15 Oct 2019 16:31:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388116AbfJOQbw (ORCPT ); Tue, 15 Oct 2019 12:31:52 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50562 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726429AbfJOQbw (ORCPT ); Tue, 15 Oct 2019 12:31:52 -0400 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) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Aleksandar Markovic , Aurelien Jarno , Eduardo Habkost , Thomas Huth , Igor Mammedov , Anthony Perard , Stefano Stabellini , Paul Durrant , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Aleksandar Rikalo , xen-devel@lists.xenproject.org, Laurent Vivier , "Michael S. Tsirkin" , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , kvm@vger.kernel.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 23/32] hw/i386/pc: Extract pc_i8259_create() 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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The i8259 creation code is common to all PC machines, extract the common code. Signed-off-by: Philippe Mathieu-Daudé --- 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_bus, PCIBus *pci_bus) rom_reset_order_override(); } +void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs) +{ + qemu_irq *i8259; + + if (kvm_pic_in_kernel()) { + i8259 = kvm_i8259_init(isa_bus); + } else if (xen_enabled()) { + i8259 = xen_interrupt_controller_init(); + } else { + i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq()); + } + + for (size_t i = 0; i < ISA_NUM_IRQS; i++) { + i8259_irqs[i] = 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 = -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); - if (kvm_pic_in_kernel()) { - i8259 = kvm_i8259_init(isa_bus); - } else if (xen_enabled()) { - i8259 = xen_interrupt_controller_init(); - } else { - i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq()); - } + pc_i8259_create(isa_bus, gsi_state->i8259_irq); - for (i = 0; i < ISA_NUM_IRQS; i++) { - gsi_state->i8259_irq[i] = 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 = ich9_lpc->isa_bus; - if (kvm_pic_in_kernel()) { - i8259 = kvm_i8259_init(isa_bus); - } else if (xen_enabled()) { - i8259 = xen_interrupt_controller_init(); - } else { - i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq()); - } - - for (i = 0; i < ISA_NUM_IRQS; i++) { - gsi_state->i8259_irq[i] = i8259[i]; - } - g_free(i8259); + pc_i8259_create(isa_bus, gsi_state->i8259_irq); 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); typedef void (*cpu_set_smm_t)(int smm, void *arg); +void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs); void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name); ISADevice *pc_find_fdc0(void); -- 2.21.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3E8A9C10F14 for ; Tue, 15 Oct 2019 16:46:48 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 100CE20650 for ; Tue, 15 Oct 2019 16:46:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 100CE20650 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52894 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iKPyA-0005PL-J8 for qemu-devel@archiver.kernel.org; Tue, 15 Oct 2019 12:46:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41913) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iKPjm-0004Wr-16 for qemu-devel@nongnu.org; Tue, 15 Oct 2019 12:31:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iKPjk-0006si-OJ for qemu-devel@nongnu.org; Tue, 15 Oct 2019 12:31:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58184) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iKPjk-0006sK-G8 for qemu-devel@nongnu.org; Tue, 15 Oct 2019 12:31:52 -0400 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) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 23/32] hw/i386/pc: Extract pc_i8259_create() 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 Content-Type: text/plain; charset=UTF-8 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) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 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: Laurent Vivier , Thomas Huth , Stefano Stabellini , Eduardo Habkost , kvm@vger.kernel.org, Paul Durrant , "Michael S. Tsirkin" , 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 Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-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= _bus, 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