From nobody Fri Nov 14 18:17:32 2025 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1761036310; cv=none; d=zohomail.com; s=zohoarc; b=aVuzoKm1rdnSys/rtUKuzq4Wal4tcyTb4+GB8zitzCnOf3pQ+ynhQWB5Hn35etb25rxgCmvhUsgjrMAl8fhzZj3mo64BgQJ3wqzttNd0HfwYg3j5X+oPr0Amp1LPU4N1Zzc2Ep4HtJrC/f1iMCTkmFYj2n9NQbyC/hRMw6JdlqA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761036310; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7BOIFmB8Gn53IMH61nQhvpTXlwuNqzhANPdE60gyPKw=; b=gPV2fyK/CoJuXHuLGCG2kov36Zn4waSV18lfyu53E1paqqfOM9cBHR1NL+tKRZamMO76pThKpu/Jg8G7Y2PmBB68GM2Nfc/l8OJUG2VFGFj+LHe01GI6bkUrkozwQJCWbLng1+OQ9k1z2TIPe/n8PddCglEdk7agDE6/z5hEkF0= 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 1761036310215434.9719281223895; Tue, 21 Oct 2025 01:45:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vB7yK-0008It-0R; Tue, 21 Oct 2025 04:44:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vB7yH-0008IS-AK for qemu-devel@nongnu.org; Tue, 21 Oct 2025 04:43:57 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vB7yF-0000tb-3v for qemu-devel@nongnu.org; Tue, 21 Oct 2025 04:43:57 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3f0ae439bc3so2758483f8f.1 for ; Tue, 21 Oct 2025 01:43:54 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427ea5a0f19sm19379117f8f.9.2025.10.21.01.43.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 21 Oct 2025 01:43:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1761036233; x=1761641033; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7BOIFmB8Gn53IMH61nQhvpTXlwuNqzhANPdE60gyPKw=; b=pIudn02MZYD4oXxNvrqZw8qtlEP24FeF2oF3l/YdcZ+5Bq5wCRjRTC8hMSd8xBKBNq 0lwrzXe9xCC7S5ccF+IgnvI2IH6Rja90D+p3CuLwnNhDe7wOFeONP15qHkoSAPOHdAgQ GiiMirrtd1uvX9dDHQbIZAl8f0d/MlJK0jMojU4m6znz2Xtzc0vC3wibXi+jy01zn2n7 k6cl5NqxhGUW+nwtTK3pGkWEK9VEBoptyKcMGYvwA0AVf+UBkoZdF+bvE51qn6OzrKDR 48fzI3DlBeF4PSOSaizE9+p8/YjBAvjTQy7FWFORrBwyEtX0fF+Pw7NoRrG2j7F9EY9T pevA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761036233; x=1761641033; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7BOIFmB8Gn53IMH61nQhvpTXlwuNqzhANPdE60gyPKw=; b=xVZInnmqn2zsfsQU67weXE6s1EbOQoeRVe73k9hanVRAQhe8XXxbDUzncOclgEGCe8 qBJ33whvKUE9s2AuEUsLdxVj1RbO8buNA4qNnfcGBdQoA0T+ozOwF5YCZf6Uknlkjliw HUo88Jvw2PflUW7KuYp8cH7y7HC0UvPBU45ZCwOGZvSvZ1xQlYXpeDVazZsnXi8Y58Gi 6jzqQU8mdCYPXp7s9mVN+tK+tTAZH/iTnNF3eK1E2glslTCKooSCDmRlU9f+jWCF+hsA vl7aR/B5NMnTFw8AJ2zGQ98JxBYjaJlFl49EupPUOjCCujuJIguCMK5zY4gmR3H2utdv Wlcw== X-Gm-Message-State: AOJu0YxC8weDqNoprJWdG24ZNrSig52lfl4I3zVsEh5LCyIpFxqVAqj8 FjV9ggUaaPOFNxI1YKVogquU2yeqs1rbamjT1oOpjVrOFzBJzGKbBCVKleXT47KgkbZjWxxuOjh rQ7ynpXk= X-Gm-Gg: ASbGnctO8ARQjA4CzePmsG6GFSzSbU6T/xMf2KhUG+XMQmV4GeND2OnuMm7Qs5iNFWf oZh/Vryxousb6yubWWeGg1xESuWY8JXKl9NFUP4imBD76y+PDy+hKo46do4YaJ14mmrhkpsGNxJ jwirJYe8bAFHQ98F9yCkm20D6ly2Slwsoy5jNjdWL9Ethehd1A642AsNo0inOwGCgwOp6w52w3n 7BWRGIOwXlqYUKIlsm541wwiHnkY6Q2f/zw9WJtkgiNTgYwSYZ9m1BrxYeMv4ASlVKa8uq4CV+G 7rLefyp67SMZuQoujlByrzeaPV5ygcpE/X+HnL5es6VfyLErT5BILbbxAaXkDzklD0PCm3IM1j0 74UNRT0PVj7SOaIvezxBlHBI6/TQgoQxzlT/FeljUjlsLfKintmoRXQTP7YogLs+nyevd8/BNe/ P+wmBLXgKQKvqfBh3qSThYT8ztWcla8LbVMgFnsMVorzWhz/LG6sLWQVbiRVoJ X-Google-Smtp-Source: AGHT+IEZQr+iw/M9Ku1VF0WsywySY59sTo/B64DAO6tXU21KFPgALdQagDHy/sfU9C7qrWv2wKiXIg== X-Received: by 2002:a05:6000:186e:b0:428:3cff:3240 with SMTP id ffacd0b85a97d-4283cff3389mr6857358f8f.1.1761036232772; Tue, 21 Oct 2025 01:43:52 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Chinmay Rath , qemu-ppc@nongnu.org, Nicholas Piggin , kvm@vger.kernel.org, Paolo Bonzini , Harsh Prateek Bora , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 01/11] ppc/spapr: remove deprecated machine pseries-3.0 Date: Tue, 21 Oct 2025 10:43:35 +0200 Message-ID: <20251021084346.73671-2-philmd@linaro.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251021084346.73671-1-philmd@linaro.org> References: <20251021084346.73671-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::429; envelope-from=philmd@linaro.org; helo=mail-wr1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1761036314442158500 From: Harsh Prateek Bora pseries-3.0 had been deprecated and due for removal now as per policy. Also remove legacy irq support which existed for pre pseries-3.1 machines. Suggested-by: C=C3=A9dric Le Goater Signed-off-by: Harsh Prateek Bora Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/ppc/spapr.h | 1 - include/hw/ppc/spapr_irq.h | 1 - hw/ppc/spapr.c | 27 +-------------------------- hw/ppc/spapr_events.c | 8 -------- hw/ppc/spapr_irq.c | 16 +--------------- hw/ppc/spapr_pci.c | 32 ++++---------------------------- hw/ppc/spapr_vio.c | 9 --------- 7 files changed, 6 insertions(+), 88 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 39bd5bd5ed3..0c1e5132de2 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -145,7 +145,6 @@ struct SpaprMachineClass { /*< public >*/ bool dr_phb_enabled; /* enable dynamic-reconfig/hotplug of PHBs = */ bool update_dt_enabled; /* enable KVMPPC_H_UPDATE_DT */ - bool legacy_irq_allocation; uint32_t nr_xirqs; bool broken_host_serial_model; /* present real host info to the guest = */ bool pre_4_1_migration; /* don't migrate hpt-max-page-size */ diff --git a/include/hw/ppc/spapr_irq.h b/include/hw/ppc/spapr_irq.h index cb9a85f6575..5ddd1107c39 100644 --- a/include/hw/ppc/spapr_irq.h +++ b/include/hw/ppc/spapr_irq.h @@ -100,7 +100,6 @@ typedef struct SpaprIrq { } SpaprIrq; =20 extern SpaprIrq spapr_irq_xics; -extern SpaprIrq spapr_irq_xics_legacy; extern SpaprIrq spapr_irq_xive; extern SpaprIrq spapr_irq_dual; =20 diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 97ab6bebd25..426a778d3e8 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3347,9 +3347,7 @@ static char *spapr_get_ic_mode(Object *obj, Error **e= rrp) { SpaprMachineState *spapr =3D SPAPR_MACHINE(obj); =20 - if (spapr->irq =3D=3D &spapr_irq_xics_legacy) { - return g_strdup("legacy"); - } else if (spapr->irq =3D=3D &spapr_irq_xics) { + if (spapr->irq =3D=3D &spapr_irq_xics) { return g_strdup("xics"); } else if (spapr->irq =3D=3D &spapr_irq_xive) { return g_strdup("xive"); @@ -3363,11 +3361,6 @@ static void spapr_set_ic_mode(Object *obj, const cha= r *value, Error **errp) { SpaprMachineState *spapr =3D SPAPR_MACHINE(obj); =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - error_setg(errp, "This machine only uses the legacy XICS backend, = don't pass ic-mode"); - return; - } - /* The legacy IRQ backend can not be set */ if (strcmp(value, "xics") =3D=3D 0) { spapr->irq =3D &spapr_irq_xics; @@ -5062,24 +5055,6 @@ static void spapr_machine_3_1_class_options(MachineC= lass *mc) =20 DEFINE_SPAPR_MACHINE(3, 1); =20 -/* - * pseries-3.0 - */ - -static void spapr_machine_3_0_class_options(MachineClass *mc) -{ - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - - spapr_machine_3_1_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_3_0, hw_compat_3_0_len); - - smc->legacy_irq_allocation =3D true; - smc->nr_xirqs =3D 0x400; - smc->irq =3D &spapr_irq_xics_legacy; -} - -DEFINE_SPAPR_MACHINE(3, 0); - static void spapr_machine_register_types(void) { type_register_static(&spapr_machine_info); diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 832b0212f31..548a190ce89 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -1043,10 +1043,6 @@ void spapr_events_init(SpaprMachineState *spapr) { int epow_irq =3D SPAPR_IRQ_EPOW; =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - epow_irq =3D spapr_irq_findone(spapr, &error_fatal); - } - spapr_irq_claim(spapr, epow_irq, false, &error_fatal); =20 QTAILQ_INIT(&spapr->pending_events); @@ -1067,10 +1063,6 @@ void spapr_events_init(SpaprMachineState *spapr) if (spapr->use_hotplug_event_source) { int hp_irq =3D SPAPR_IRQ_HOTPLUG; =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - hp_irq =3D spapr_irq_findone(spapr, &error_fatal); - } - spapr_irq_claim(spapr, hp_irq, false, &error_fatal); =20 spapr_event_sources_register(spapr->event_sources, EVENT_CLASS_HOT= _PLUG, diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index d6d368dd08c..317d57a3802 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -33,11 +33,6 @@ static const TypeInfo spapr_intc_info =3D { =20 static void spapr_irq_msi_init(SpaprMachineState *spapr) { - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - /* Legacy mode doesn't use this allocator */ - return; - } - spapr->irq_map_nr =3D spapr_irq_nr_msis(spapr); spapr->irq_map =3D bitmap_new(spapr->irq_map_nr); } @@ -286,11 +281,7 @@ uint32_t spapr_irq_nr_msis(SpaprMachineState *spapr) { SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); =20 - if (smc->legacy_irq_allocation) { - return smc->nr_xirqs; - } else { - return SPAPR_XIRQ_BASE + smc->nr_xirqs - SPAPR_IRQ_MSI; - } + return SPAPR_XIRQ_BASE + smc->nr_xirqs - SPAPR_IRQ_MSI; } =20 void spapr_irq_init(SpaprMachineState *spapr, Error **errp) @@ -588,11 +579,6 @@ int spapr_irq_find(SpaprMachineState *spapr, int num, = bool align, Error **errp) return first + ics->offset; } =20 -SpaprIrq spapr_irq_xics_legacy =3D { - .xics =3D true, - .xive =3D false, -}; - static void spapr_irq_register_types(void) { type_register_static(&spapr_intc_info); diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index f9095552e86..bdec8f0728d 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -268,7 +268,6 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, SpaprM= achineState *spapr, target_ulong args, uint32_t nret, target_ulong rets) { - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); uint32_t config_addr =3D rtas_ld(args, 0); uint64_t buid =3D rtas_ldq(args, 1); unsigned int func =3D rtas_ld(args, 3); @@ -373,13 +372,8 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, Spapr= MachineState *spapr, } =20 /* Allocate MSIs */ - if (smc->legacy_irq_allocation) { - irq =3D spapr_irq_find(spapr, req_num, ret_intr_type =3D=3D RTAS_T= YPE_MSI, - &err); - } else { - irq =3D spapr_irq_msi_alloc(spapr, req_num, - ret_intr_type =3D=3D RTAS_TYPE_MSI, &err= ); - } + irq =3D spapr_irq_msi_alloc(spapr, req_num, + ret_intr_type =3D=3D RTAS_TYPE_MSI, &err); if (err) { error_reportf_err(err, "Can't allocate MSIs for device %x: ", config_addr); @@ -393,9 +387,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, SpaprM= achineState *spapr, if (i) { spapr_irq_free(spapr, irq, i); } - if (!smc->legacy_irq_allocation) { - spapr_irq_msi_free(spapr, irq, req_num); - } + spapr_irq_msi_free(spapr, irq, req_num); error_reportf_err(err, "Can't allocate MSIs for device %x: ", config_addr); rtas_st(rets, 0, RTAS_OUT_HW_ERROR); @@ -1789,12 +1781,9 @@ static void spapr_phb_unrealize(DeviceState *dev) static void spapr_phb_destroy_msi(gpointer opaque) { SpaprMachineState *spapr =3D SPAPR_MACHINE(qdev_get_machine()); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); SpaprPciMsi *msi =3D opaque; =20 - if (!smc->legacy_irq_allocation) { - spapr_irq_msi_free(spapr, msi->first_irq, msi->num); - } + spapr_irq_msi_free(spapr, msi->first_irq, msi->num); spapr_irq_free(spapr, msi->first_irq, msi->num); g_free(msi); } @@ -1808,7 +1797,6 @@ static void spapr_phb_realize(DeviceState *dev, Error= **errp) SpaprMachineState *spapr =3D (SpaprMachineState *) object_dynamic_cast(qdev_get_machine(), TYPE_SPAPR_MACHINE); - SpaprMachineClass *smc =3D spapr ? SPAPR_MACHINE_GET_CLASS(spapr) : NU= LL; SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); SpaprPhbState *sphb =3D SPAPR_PCI_HOST_BRIDGE(sbd); PCIHostState *phb =3D PCI_HOST_BRIDGE(sbd); @@ -1956,18 +1944,6 @@ static void spapr_phb_realize(DeviceState *dev, Erro= r **errp) for (i =3D 0; i < PCI_NUM_PINS; i++) { int irq =3D SPAPR_IRQ_PCI_LSI + sphb->index * PCI_NUM_PINS + i; =20 - if (smc->legacy_irq_allocation) { - irq =3D spapr_irq_findone(spapr, errp); - if (irq < 0) { - error_prepend(errp, "can't allocate LSIs: "); - /* - * Older machines will never support PHB hotplug, ie, this= is an - * init only path and QEMU will terminate. No need to roll= back. - */ - return; - } - } - if (spapr_irq_claim(spapr, irq, true, errp) < 0) { error_prepend(errp, "can't allocate LSIs: "); goto unrealize; diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c index 7759436a4f5..c21a2a3274e 100644 --- a/hw/ppc/spapr_vio.c +++ b/hw/ppc/spapr_vio.c @@ -507,15 +507,6 @@ static void spapr_vio_busdev_realize(DeviceState *qdev= , Error **errp) =20 dev->irq =3D spapr_vio_reg_to_irq(dev->reg); =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - int irq =3D spapr_irq_findone(spapr, errp); - - if (irq < 0) { - return; - } - dev->irq =3D irq; - } - if (spapr_irq_claim(spapr, dev->irq, false, errp) < 0) { return; } --=20 2.51.0