From 3dc9951906af4d47dddd56afd4c27ac8b3ed3c24 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 6 Jun 2025 11:20:33 +0200 Subject: [PATCH 01/19] tests/functional/test_pc_cpu_hotplug_props: Set 'pc' machine type explicitly In case the default machine has not been compiled into the QEMU binary, the cpu_hotplug_props test is currently failing. Add a set_machine('pc') here to make sure that the tests are correctly skipped in case the machine is not available. Signed-off-by: Thomas Huth Message-ID: <20250606092033.506736-1-thuth@redhat.com> --- tests/functional/test_pc_cpu_hotplug_props.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/functional/test_pc_cpu_hotplug_props.py b/tests/functional/test_pc_cpu_hotplug_props.py index 9d5a37cb17..2bed8ada02 100755 --- a/tests/functional/test_pc_cpu_hotplug_props.py +++ b/tests/functional/test_pc_cpu_hotplug_props.py @@ -26,6 +26,7 @@ from qemu_test import QemuSystemTest class OmittedCPUProps(QemuSystemTest): def test_no_die_id(self): + self.set_machine('pc') self.vm.add_args('-nodefaults', '-S') self.vm.add_args('-smp', '1,sockets=2,cores=2,threads=2,maxcpus=8') self.vm.add_args('-device', 'qemu64-x86_64-cpu,socket-id=1,core-id=0,thread-id=0') From 920f067347782e4737d0e4a89692b669b888fe0a Mon Sep 17 00:00:00 2001 From: Yoshinori Sato Date: Thu, 12 Jun 2025 22:16:32 +0900 Subject: [PATCH 02/19] MAINTAINERS: Yoshinori Sato email address has been updated The email address has been suspended. I have prepared a new email address. Signed-off-by: Yoshinori Sato Message-ID: <20250612131632.137155-1-yoshinori.sato@nifty.com> Signed-off-by: Thomas Huth --- MAINTAINERS | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 27f4fe3f25..5b8b314c8c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -352,7 +352,7 @@ F: target/riscv/insn_trans/trans_xventanacondops.c.inc F: disas/riscv-xventana* RENESAS RX CPUs -R: Yoshinori Sato +R: Yoshinori Sato S: Orphan F: target/rx/ @@ -368,7 +368,7 @@ F: tests/tcg/s390x/ L: qemu-s390x@nongnu.org SH4 TCG CPUs -R: Yoshinori Sato +R: Yoshinori Sato S: Orphan F: target/sh4/ F: hw/sh4/ @@ -1696,7 +1696,7 @@ F: docs/system/riscv/microblaze-v-generic.rst RX Machines ----------- rx-gdbsim -R: Yoshinori Sato +R: Yoshinori Sato S: Orphan F: docs/system/target-rx.rst F: hw/rx/rx-gdbsim.c @@ -1705,7 +1705,7 @@ F: tests/functional/test_rx_gdbsim.py SH4 Machines ------------ R2D -R: Yoshinori Sato +R: Yoshinori Sato R: Magnus Damm S: Odd Fixes F: hw/char/sh_serial.c @@ -2756,7 +2756,7 @@ F: tests/qtest/*xive* F: docs/*/*xive* Renesas peripherals -R: Yoshinori Sato +R: Yoshinori Sato R: Magnus Damm S: Odd Fixes F: hw/char/renesas_sci.c @@ -2768,7 +2768,7 @@ F: include/hw/sh4/sh.h F: include/hw/timer/renesas_*.h Renesas RX peripherals -R: Yoshinori Sato +R: Yoshinori Sato S: Orphan F: hw/intc/rx_icu.c F: hw/rx/ From 435c758da161448447dc47e678a97b8df434d94c Mon Sep 17 00:00:00 2001 From: Shalini Chellathurai Saroja Date: Mon, 16 Jun 2025 16:01:05 +0200 Subject: [PATCH 03/19] hw/s390x: add SCLP event type CPI Implement the Service-Call Logical Processor (SCLP) event type Control-Program Identification (CPI) in QEMU. This event is used to send CPI identifiers from the guest to the host. The CPI identifiers are: system type, system name, system level and sysplex name. System type: operating system of the guest (e.g. "LINUX "). System name: user configurable name of the guest (e.g. "TESTVM "). System level: distribution and kernel version, if the system type is Linux (e.g. 74872343805430528). Sysplex name: name of the cluster which the guest belongs to (if any) (e.g. "PLEX"). The SCLP event CPI is supported only from "s390-ccw-virtio-10.1" machine and higher. Signed-off-by: Shalini Chellathurai Saroja Reviewed-by: Nina Schoetterl-Glausch Reviewed-by: Thomas Huth Message-ID: <20250616140107.990538-2-shalini@linux.ibm.com> Signed-off-by: Thomas Huth --- hw/s390x/event-facility.c | 2 + hw/s390x/meson.build | 1 + hw/s390x/s390-virtio-ccw.c | 22 ++++++ hw/s390x/sclpcpi.c | 123 +++++++++++++++++++++++++++++ include/hw/s390x/event-facility.h | 12 +++ include/hw/s390x/s390-virtio-ccw.h | 1 + 6 files changed, 161 insertions(+) create mode 100644 hw/s390x/sclpcpi.c diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c index 7b7bf237fe..fee286ea63 100644 --- a/hw/s390x/event-facility.c +++ b/hw/s390x/event-facility.c @@ -4,6 +4,7 @@ * handles SCLP event types * - Signal Quiesce - system power down * - ASCII Console Data - VT220 read and write + * - Control-Program Identification - Send OS data from guest to host * * Copyright IBM, Corp. 2012 * @@ -40,6 +41,7 @@ struct SCLPEventFacility { SysBusDevice parent_obj; SCLPEventsBus sbus; SCLPEvent quiesce, cpu_hotplug; + SCLPEventCPI cpi; /* guest's receive mask */ union { uint32_t receive_mask_pieces[2]; diff --git a/hw/s390x/meson.build b/hw/s390x/meson.build index 99cbcbd7d6..1bc8583799 100644 --- a/hw/s390x/meson.build +++ b/hw/s390x/meson.build @@ -13,6 +13,7 @@ s390x_ss.add(files( 's390-skeys.c', 's390-stattrib.c', 'sclp.c', + 'sclpcpi.c', 'sclpcpu.c', 'sclpquiesce.c', 'tod.c', diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index ce3c13defb..a79bd13275 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -260,9 +260,21 @@ static void s390_create_sclpconsole(SCLPDevice *sclp, qdev_realize_and_unref(dev, ev_fac_bus, &error_fatal); } +static void s390_create_sclpcpi(SCLPDevice *sclp) +{ + SCLPEventFacility *ef = sclp->event_facility; + BusState *ev_fac_bus = sclp_get_event_facility_bus(ef); + DeviceState *dev; + + dev = qdev_new(TYPE_SCLP_EVENT_CPI); + object_property_add_child(OBJECT(ef), "sclpcpi", OBJECT(dev)); + qdev_realize_and_unref(dev, ev_fac_bus, &error_fatal); +} + static void ccw_init(MachineState *machine) { MachineClass *mc = MACHINE_GET_CLASS(machine); + S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); S390CcwMachineState *ms = S390_CCW_MACHINE(machine); int ret; VirtualCssBus *css_bus; @@ -323,6 +335,12 @@ static void ccw_init(MachineState *machine) /* init the TOD clock */ s390_init_tod(); + + /* init SCLP event Control-Program Identification */ + if (s390mc->use_cpi) { + s390_create_sclpcpi(ms->sclp); + } + } static void s390_cpu_plug(HotplugHandler *hotplug_dev, @@ -783,6 +801,7 @@ static void ccw_machine_class_init(ObjectClass *oc, const void *data) DumpSKeysInterface *dsi = DUMP_SKEYS_INTERFACE_CLASS(oc); s390mc->max_threads = 1; + s390mc->use_cpi = true; mc->reset = s390_machine_reset; mc->block_default_type = IF_VIRTIO; mc->no_cdrom = 1; @@ -908,6 +927,9 @@ static void ccw_machine_10_0_instance_options(MachineState *machine) static void ccw_machine_10_0_class_options(MachineClass *mc) { + S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); + s390mc->use_cpi = false; + ccw_machine_10_1_class_options(mc); compat_props_add(mc->compat_props, hw_compat_10_0, hw_compat_10_0_len); } diff --git a/hw/s390x/sclpcpi.c b/hw/s390x/sclpcpi.c new file mode 100644 index 0000000000..6e2090b27f --- /dev/null +++ b/hw/s390x/sclpcpi.c @@ -0,0 +1,123 @@ + /* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * SCLP event type 11 - Control-Program Identification (CPI): + * CPI is used to send program identifiers from the guest to the + * Service-Call Logical Processor (SCLP). It is not sent by the SCLP. + * + * Control-program identifiers provide data about the guest operating + * system. The control-program identifiers are: system type, system name, + * system level and sysplex name. + * + * In Linux, all the control-program identifiers are user configurable. The + * system type, system name, and sysplex name use EBCDIC characters from + * this set: capital A-Z, 0-9, $, @, #, and blank. In Linux, the system + * type, system name and sysplex name are arbitrary free-form texts. + * + * In Linux, the 8-byte hexadecimal system-level has the format + * 0x
, where: + * : is a 4-bit digit, its most significant bit indicates hypervisor use + * : is one digit that represents Linux distributions as follows + * 0: generic Linux + * 1: Red Hat Enterprise Linux + * 2: SUSE Linux Enterprise Server + * 3: Canonical Ubuntu + * 4: Fedora + * 5: openSUSE Leap + * 6: Debian GNU/Linux + * 7: Red Hat Enterprise Linux CoreOS + * : are two digits for a distribution-specific encoding of the major + * version of the distribution + *
: are two digits for a distribution-specific encoding of the minor + * version of the distribution + * : are four digits for the patch level of the distribution + * : are two digits for the major version of the kernel + * : are two digits for the minor version of the kernel + * : are two digits for the stable version of the kernel + * (e.g. 74872343805430528, when converted to hex is 0x010a000000060b00). On + * machines prior to z16, some of the values are not available to display. + * + * Sysplex refers to a cluster of logical partitions that communicates and + * co-operates with each other. + * + * The CPI feature is supported since 10.1. + * + * Copyright IBM, Corp. 2024 + * + * Authors: + * Shalini Chellathurai Saroja + * + */ + +#include "qemu/osdep.h" +#include "hw/s390x/event-facility.h" + +typedef struct Data { + uint8_t id_format; + uint8_t reserved0; + uint8_t system_type[8]; + uint64_t reserved1; + uint8_t system_name[8]; + uint64_t reserved2; + uint64_t system_level; + uint64_t reserved3; + uint8_t sysplex_name[8]; + uint8_t reserved4[16]; +} QEMU_PACKED Data; + +typedef struct ControlProgramIdMsg { + EventBufferHeader ebh; + Data data; +} QEMU_PACKED ControlProgramIdMsg; + +static bool can_handle_event(uint8_t type) +{ + return type == SCLP_EVENT_CTRL_PGM_ID; +} + +static sccb_mask_t send_mask(void) +{ + return 0; +} + +/* Enable SCLP to accept buffers of event type CPI from the control-program. */ +static sccb_mask_t receive_mask(void) +{ + return SCLP_EVENT_MASK_CTRL_PGM_ID; +} + +static int write_event_data(SCLPEvent *event, EventBufferHeader *evt_buf_hdr) +{ + ControlProgramIdMsg *cpim = container_of(evt_buf_hdr, ControlProgramIdMsg, + ebh); + + cpim->ebh.flags = SCLP_EVENT_BUFFER_ACCEPTED; + return SCLP_RC_NORMAL_COMPLETION; +} + +static void cpi_class_init(ObjectClass *klass, const void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + SCLPEventClass *k = SCLP_EVENT_CLASS(klass); + + dc->user_creatable = false; + + k->can_handle_event = can_handle_event; + k->get_send_mask = send_mask; + k->get_receive_mask = receive_mask; + k->write_event_data = write_event_data; +} + +static const TypeInfo sclp_cpi_info = { + .name = TYPE_SCLP_EVENT_CPI, + .parent = TYPE_SCLP_EVENT, + .instance_size = sizeof(SCLPEventCPI), + .class_init = cpi_class_init, +}; + +static void sclp_cpi_register_types(void) +{ + type_register_static(&sclp_cpi_info); +} + +type_init(sclp_cpi_register_types) diff --git a/include/hw/s390x/event-facility.h b/include/hw/s390x/event-facility.h index ff874e792d..e81bc80498 100644 --- a/include/hw/s390x/event-facility.h +++ b/include/hw/s390x/event-facility.h @@ -25,6 +25,7 @@ #define SCLP_EVENT_MESSAGE 0x02 #define SCLP_EVENT_CONFIG_MGT_DATA 0x04 #define SCLP_EVENT_PMSGCMD 0x09 +#define SCLP_EVENT_CTRL_PGM_ID 0x0b #define SCLP_EVENT_ASCII_CONSOLE_DATA 0x1a #define SCLP_EVENT_SIGNAL_QUIESCE 0x1d @@ -35,6 +36,7 @@ #define SCLP_EVENT_MASK_MSG SCLP_EVMASK(SCLP_EVENT_MESSAGE) #define SCLP_EVENT_MASK_CONFIG_MGT_DATA SCLP_EVMASK(SCLP_EVENT_CONFIG_MGT_DATA) #define SCLP_EVENT_MASK_PMSGCMD SCLP_EVMASK(SCLP_EVENT_PMSGCMD) +#define SCLP_EVENT_MASK_CTRL_PGM_ID SCLP_EVMASK(SCLP_EVENT_CTRL_PGM_ID) #define SCLP_EVENT_MASK_MSG_ASCII SCLP_EVMASK(SCLP_EVENT_ASCII_CONSOLE_DATA) #define SCLP_EVENT_MASK_SIGNAL_QUIESCE SCLP_EVMASK(SCLP_EVENT_SIGNAL_QUIESCE) @@ -191,6 +193,16 @@ struct SCLPEventClass { bool (*can_handle_event)(uint8_t type); }; +#define TYPE_SCLP_EVENT_CPI "sclpcpi" +typedef struct SCLPEventCPIClass SCLPEventCPIClass; +typedef struct SCLPEventCPI SCLPEventCPI; +OBJECT_DECLARE_TYPE(SCLPEventCPI, SCLPEventCPIClass, + SCLP_EVENT_CPI) + +struct SCLPEventCPI { + SCLPEvent event; +}; + #define TYPE_SCLP_EVENT_FACILITY "s390-sclp-event-facility" typedef struct SCLPEventFacility SCLPEventFacility; typedef struct SCLPEventFacilityClass SCLPEventFacilityClass; diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h index 321b26df30..526078a4e2 100644 --- a/include/hw/s390x/s390-virtio-ccw.h +++ b/include/hw/s390x/s390-virtio-ccw.h @@ -54,6 +54,7 @@ struct S390CcwMachineClass { /*< public >*/ int max_threads; + bool use_cpi; }; #endif From f345978f24becfab4445fbf1ed2519ee9101d1dd Mon Sep 17 00:00:00 2001 From: Shalini Chellathurai Saroja Date: Mon, 16 Jun 2025 16:01:06 +0200 Subject: [PATCH 04/19] hw/s390x: add Control-Program Identification to QOM Add Control-Program Identification (CPI) data to the QEMU Object Model (QOM), along with the timestamp in which the data was received as shown below. virsh # qemu-monitor-command vm --pretty '{"execute":"qom-list", "arguments":{"path":"/machine/sclp/s390-sclp-event-facility/sclpcpi"}}' { "return": [ [...] { "name": "system_level", "type": "uint64" }, { "name": "system_name", "type": "string" }, { "name": "system_type", "type": "string" }, { "name": "timestamp", "type": "uint64" }, { "name": "sysplex_name", "type": "string" } ], "id": "libvirt-14" } Example CPI data: virsh # qemu-monitor-command vm --pretty '{"execute":"qom-get", "arguments":{"path":"/machine/sclp/s390-sclp-event-facility/sclpcpi", "property":"system_type"}}' { "return": "LINUX ", "id": "libvirt-18" } virsh # qemu-monitor-command vm --pretty '{"execute":"qom-get", "arguments":{"path":"/machine/sclp/s390-sclp-event-facility/sclpcpi", "property":"system_name"}}' { "return": "TESTVM ", "id": "libvirt-19" } virsh # qemu-monitor-command vm --pretty '{"execute":"qom-get", "arguments":{"path":"/machine/sclp/s390-sclp-event-facility/sclpcpi", "property":"sysplex_name"}}' { "return": "PLEX ", "id": "libvirt-20" } virsh # qemu-monitor-command vm --pretty '{"execute":"qom-get", "arguments":{"path":"/machine/sclp/s390-sclp-event-facility/sclpcpi", "property":"system_level"}}' { "return": 74872343805430528, "id": "libvirt-21" } virsh # qemu-monitor-command vm --pretty '{"execute":"qom-get", "arguments":{"path":"/machine/sclp/s390-sclp-event-facility/sclpcpi", "property":"timestamp"}}' { "return": 1748866753433923000, "id": "libvirt-22" } Signed-off-by: Shalini Chellathurai Saroja Reviewed-by: Nina Schoetterl-Glausch Message-ID: <20250616140107.990538-3-shalini@linux.ibm.com> Signed-off-by: Thomas Huth --- hw/s390x/sclpcpi.c | 74 +++++++++++++++++++++++++++++++ include/hw/s390x/event-facility.h | 5 +++ 2 files changed, 79 insertions(+) diff --git a/hw/s390x/sclpcpi.c b/hw/s390x/sclpcpi.c index 6e2090b27f..440a5ff1eb 100644 --- a/hw/s390x/sclpcpi.c +++ b/hw/s390x/sclpcpi.c @@ -50,7 +50,10 @@ */ #include "qemu/osdep.h" +#include "qemu/timer.h" #include "hw/s390x/event-facility.h" +#include "hw/s390x/ebcdic.h" +#include "qapi/qapi-visit-machine.h" typedef struct Data { uint8_t id_format; @@ -90,11 +93,58 @@ static int write_event_data(SCLPEvent *event, EventBufferHeader *evt_buf_hdr) { ControlProgramIdMsg *cpim = container_of(evt_buf_hdr, ControlProgramIdMsg, ebh); + SCLPEventCPI *e = SCLP_EVENT_CPI(event); + + ascii_put(e->system_type, (char *)cpim->data.system_type, + sizeof(cpim->data.system_type)); + ascii_put(e->system_name, (char *)cpim->data.system_name, + sizeof(cpim->data.system_name)); + ascii_put(e->sysplex_name, (char *)cpim->data.sysplex_name, + sizeof(cpim->data.sysplex_name)); + e->system_level = ldq_be_p(&cpim->data.system_level); + e->timestamp = qemu_clock_get_ns(QEMU_CLOCK_HOST); cpim->ebh.flags = SCLP_EVENT_BUFFER_ACCEPTED; return SCLP_RC_NORMAL_COMPLETION; } +static char *get_system_type(Object *obj, Error **errp) +{ + SCLPEventCPI *e = SCLP_EVENT_CPI(obj); + + return g_strndup((char *) e->system_type, sizeof(e->system_type)); +} + +static char *get_system_name(Object *obj, Error **errp) +{ + SCLPEventCPI *e = SCLP_EVENT_CPI(obj); + + return g_strndup((char *) e->system_name, sizeof(e->system_name)); +} + +static char *get_sysplex_name(Object *obj, Error **errp) +{ + SCLPEventCPI *e = SCLP_EVENT_CPI(obj); + + return g_strndup((char *) e->sysplex_name, sizeof(e->sysplex_name)); +} + +static void get_system_level(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + SCLPEventCPI *e = SCLP_EVENT_CPI(obj); + + visit_type_uint64(v, name, &e->system_level, errp); +} + +static void get_timestamp(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + SCLPEventCPI *e = SCLP_EVENT_CPI(obj); + + visit_type_uint64(v, name, &e->timestamp, errp); +} + static void cpi_class_init(ObjectClass *klass, const void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -106,6 +156,30 @@ static void cpi_class_init(ObjectClass *klass, const void *data) k->get_send_mask = send_mask; k->get_receive_mask = receive_mask; k->write_event_data = write_event_data; + + object_class_property_add_str(klass, "system_type", get_system_type, NULL); + object_class_property_set_description(klass, "system_type", + "operating system e.g. \"LINUX \""); + + object_class_property_add_str(klass, "system_name", get_system_name, NULL); + object_class_property_set_description(klass, "system_name", + "user configurable name of the VM e.g. \"TESTVM \""); + + object_class_property_add_str(klass, "sysplex_name", get_sysplex_name, + NULL); + object_class_property_set_description(klass, "sysplex_name", + "name of the cluster which the VM belongs to, if any" + " e.g. \"PLEX \""); + + object_class_property_add(klass, "system_level", "uint64", get_system_level, + NULL, NULL, NULL); + object_class_property_set_description(klass, "system_level", + "distribution and kernel version in Linux e.g. 74872343805430528"); + + object_class_property_add(klass, "timestamp", "uint64", get_timestamp, + NULL, NULL, NULL); + object_class_property_set_description(klass, "timestamp", + "latest update of CPI data in nanoseconds since the UNIX EPOCH"); } static const TypeInfo sclp_cpi_info = { diff --git a/include/hw/s390x/event-facility.h b/include/hw/s390x/event-facility.h index e81bc80498..eac7a51100 100644 --- a/include/hw/s390x/event-facility.h +++ b/include/hw/s390x/event-facility.h @@ -201,6 +201,11 @@ OBJECT_DECLARE_TYPE(SCLPEventCPI, SCLPEventCPIClass, struct SCLPEventCPI { SCLPEvent event; + uint8_t system_type[8]; + uint8_t system_name[8]; + uint64_t system_level; + uint8_t sysplex_name[8]; + uint64_t timestamp; }; #define TYPE_SCLP_EVENT_FACILITY "s390-sclp-event-facility" From c61927ba8e4375fcb80aef9d9bc9e32b8130af01 Mon Sep 17 00:00:00 2001 From: Shalini Chellathurai Saroja Date: Mon, 16 Jun 2025 16:01:07 +0200 Subject: [PATCH 05/19] hw/s390x: support migration of CPI data Register Control-Program Identification data with the live migration infrastructure. Signed-off-by: Shalini Chellathurai Saroja Reviewed-by: Nina Schoetterl-Glausch Reviewed-by: Thomas Huth Message-ID: <20250616140107.990538-4-shalini@linux.ibm.com> Signed-off-by: Thomas Huth --- hw/s390x/sclpcpi.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/hw/s390x/sclpcpi.c b/hw/s390x/sclpcpi.c index 440a5ff1eb..7aa039d510 100644 --- a/hw/s390x/sclpcpi.c +++ b/hw/s390x/sclpcpi.c @@ -54,6 +54,7 @@ #include "hw/s390x/event-facility.h" #include "hw/s390x/ebcdic.h" #include "qapi/qapi-visit-machine.h" +#include "migration/vmstate.h" typedef struct Data { uint8_t id_format; @@ -145,12 +146,26 @@ static void get_timestamp(Object *obj, Visitor *v, const char *name, visit_type_uint64(v, name, &e->timestamp, errp); } +static const VMStateDescription vmstate_sclpcpi = { + .name = "s390_control_program_id", + .version_id = 0, + .fields = (const VMStateField[]) { + VMSTATE_UINT8_ARRAY(system_type, SCLPEventCPI, 8), + VMSTATE_UINT8_ARRAY(system_name, SCLPEventCPI, 8), + VMSTATE_UINT64(system_level, SCLPEventCPI), + VMSTATE_UINT8_ARRAY(sysplex_name, SCLPEventCPI, 8), + VMSTATE_UINT64(timestamp, SCLPEventCPI), + VMSTATE_END_OF_LIST() + } +}; + static void cpi_class_init(ObjectClass *klass, const void *data) { DeviceClass *dc = DEVICE_CLASS(klass); SCLPEventClass *k = SCLP_EVENT_CLASS(klass); dc->user_creatable = false; + dc->vmsd = &vmstate_sclpcpi; k->can_handle_event = can_handle_event; k->get_send_mask = send_mask; From a96011fefc2d9073569d51f481b656b65f552df7 Mon Sep 17 00:00:00 2001 From: Matthew Rosato Date: Mon, 23 Jun 2025 12:00:30 -0400 Subject: [PATCH 06/19] MAINTAINERS: add reviewers for some s390 areas To improve review coverage, assign additional people as reviewers for multiple s390 sections. Signed-off-by: Matthew Rosato Acked-by: Jason J. Herne Acked-by: Collin Walling Acked-by: Jared Rossi Acked-by: Halil Pasic Acked-by: Farhan Ali Acked-by: Zhuoying Cai Acked-by: Eric Farman Message-ID: <20250623160030.98281-1-mjrosato@linux.ibm.com> Signed-off-by: Thomas Huth --- MAINTAINERS | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 5b8b314c8c..ebb8af7d5b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -459,6 +459,8 @@ F: target/ppc/kvm.c S390 KVM CPUs M: Halil Pasic M: Christian Borntraeger +R: Eric Farman +R: Matthew Rosato S: Supported F: target/s390x/kvm/ F: target/s390x/machine.c @@ -1771,6 +1773,7 @@ S390 Virtio-ccw M: Halil Pasic M: Christian Borntraeger M: Eric Farman +R: Matthew Rosato S: Supported F: hw/s390x/ F: include/hw/s390x/ @@ -1782,6 +1785,8 @@ L: qemu-s390x@nongnu.org S390-ccw boot M: Christian Borntraeger M: Thomas Huth +R: Jared Rossi +R: Zhuoying Cai S: Supported F: hw/s390x/ipl.* F: pc-bios/s390-ccw/ @@ -1802,6 +1807,7 @@ S390 channel subsystem M: Halil Pasic M: Christian Borntraeger M: Eric Farman +R: Farhan Ali S: Supported F: hw/s390x/ccw-device.[ch] F: hw/s390x/css.c @@ -1822,6 +1828,7 @@ L: qemu-s390x@nongnu.org S390 SCLP-backed devices M: Halil Pasic M: Christian Borntraeger +R: Jason Herne S: Supported F: include/hw/s390x/event-facility.h F: include/hw/s390x/sclp.h @@ -2809,6 +2816,7 @@ F: include/hw/timer/mips_gictimer.h S390 3270 device M: Halil Pasic M: Christian Borntraeger +R: Collin Walling S: Odd fixes F: include/hw/s390x/3270-ccw.h F: hw/char/terminal3270.c @@ -2818,6 +2826,7 @@ L: qemu-s390x@nongnu.org S390 diag 288 watchdog M: Halil Pasic M: Christian Borntraeger +R: Collin Walling S: Supported F: hw/watchdog/wdt_diag288.c F: include/hw/watchdog/wdt_diag288.h @@ -2826,6 +2835,7 @@ L: qemu-s390x@nongnu.org S390 storage key device M: Halil Pasic M: Christian Borntraeger +R: Jason Herne S: Supported F: hw/s390x/storage-keys.h F: hw/s390x/s390-skeys*.c @@ -2834,6 +2844,7 @@ L: qemu-s390x@nongnu.org S390 storage attribute device M: Halil Pasic M: Christian Borntraeger +R: Jason Herne S: Supported F: hw/s390x/storage-attributes.h F: hw/s390x/s390-stattrib*.c @@ -2843,6 +2854,7 @@ S390 floating interrupt controller M: Halil Pasic M: Christian Borntraeger M: David Hildenbrand +R: Jason Herne S: Supported F: hw/intc/s390_flic*.c F: include/hw/s390x/s390_flic.h From 78e3781541209b3dcd6f4bb66adf3a3e504b88a4 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Wed, 25 Jun 2025 10:27:51 +0200 Subject: [PATCH 07/19] hw/s390x/ccw-device: Fix memory leak in loadparm setter Commit bdf12f2a fixed the setter for the "loadparm" machine property, which gets a string from a visitor, passes it to s390_ipl_fmt_loadparm() and then forgot to free it. It left another instance of the same problem unfixed in the "loadparm" device property. Fix it. Signed-off-by: Kevin Wolf Message-ID: <20250625082751.24896-1-kwolf@redhat.com> Reviewed-by: Eric Farman Reviewed-by: Halil Pasic Tested-by: Thomas Huth Signed-off-by: Thomas Huth --- hw/s390x/ccw-device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c index 19c2238f76..8be1813b9e 100644 --- a/hw/s390x/ccw-device.c +++ b/hw/s390x/ccw-device.c @@ -57,7 +57,7 @@ static void ccw_device_set_loadparm(Object *obj, Visitor *v, Error **errp) { CcwDevice *dev = CCW_DEVICE(obj); - char *val; + g_autofree char *val = NULL; int index; index = object_property_get_int(obj, "bootindex", NULL); From 6e7cb5ff2071827ffac118bb3370b81397fe08d8 Mon Sep 17 00:00:00 2001 From: Haseung Bong Date: Sun, 15 Jun 2025 09:32:49 +0900 Subject: [PATCH 08/19] tests/vm: update openbsd image to 7.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update tests/vm/openbsd to release 7.7 Signed-off-by: Haseung Bong Reviewed-by: Daniel P. Berrangé Message-ID: <20250615003249.310160-1-hasueng@gmail.com> Signed-off-by: Thomas Huth --- tests/vm/openbsd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/vm/openbsd b/tests/vm/openbsd index 5e4f76f398..2ea86a01ba 100755 --- a/tests/vm/openbsd +++ b/tests/vm/openbsd @@ -22,8 +22,8 @@ class OpenBSDVM(basevm.BaseVM): name = "openbsd" arch = "x86_64" - link = "https://cdn.openbsd.org/pub/OpenBSD/7.6/amd64/install76.iso" - csum = "60cba8cb391b50bba8fa10fc768bd0529636f5345d82133c93e22c798d8e5269" + link = "https://cdn.openbsd.org/pub/OpenBSD/7.7/amd64/install77.iso" + csum = "da0106e39463f015524dca806f407c37a9bdd17e6dfffe533b06a2dd2edd8a27" size = "20G" pkgs = [ # tools From 4db50be038a839d8332790db4d2d63ac247efad3 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:33:10 -0400 Subject: [PATCH 09/19] COPYING: replace FSF postal address with licenses URL The license text in COPYING (GPLv2), COPYING.LIB (LGPLv2.1), and the linux-headers/LICENSES/preferred/GPL-2.0 file are referenced to the obsolete FSF postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Message-ID: <20250613.qemu.patch.01@sean.taipei> [thuth: dropped the changes to the linux-headers folder] Signed-off-by: Thomas Huth --- COPYING | 5 ++--- COPYING.LIB | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/COPYING b/COPYING index 00ccfbb628..8095135d50 100644 --- a/COPYING +++ b/COPYING @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -304,8 +304,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + with this program; if not, see . Also add information on how to contact you by electronic and paper mail. diff --git a/COPYING.LIB b/COPYING.LIB index 4362b49151..99f47575b5 100644 --- a/COPYING.LIB +++ b/COPYING.LIB @@ -2,7 +2,7 @@ Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -484,8 +484,7 @@ convey the exclusion of warranty; and each file should have at least the Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see . Also add information on how to contact you by electronic and paper mail. From cf81c1c6b9761d319b37939b8608c2b7dc75ce13 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:39:50 -0400 Subject: [PATCH 10/19] libdecnumber: replace FSF postal address with licenses URL Some of the GPLv2 boiler-plate still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Thomas Huth Message-ID: <20250613.qemu.patch.03@sean.taipei> Signed-off-by: Thomas Huth --- libdecnumber/decContext.c | 5 ++--- libdecnumber/decNumber.c | 5 ++--- libdecnumber/dpd/decimal128.c | 5 ++--- libdecnumber/dpd/decimal32.c | 5 ++--- libdecnumber/dpd/decimal64.c | 5 ++--- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/libdecnumber/decContext.c b/libdecnumber/decContext.c index 1956edf0a7..d99b08026c 100644 --- a/libdecnumber/decContext.c +++ b/libdecnumber/decContext.c @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal Context module */ diff --git a/libdecnumber/decNumber.c b/libdecnumber/decNumber.c index 31282adafd..4b57d8a6fe 100644 --- a/libdecnumber/decNumber.c +++ b/libdecnumber/decNumber.c @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal Number arithmetic module */ diff --git a/libdecnumber/dpd/decimal128.c b/libdecnumber/dpd/decimal128.c index ca4764e547..1064fb25e0 100644 --- a/libdecnumber/dpd/decimal128.c +++ b/libdecnumber/dpd/decimal128.c @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal 128-bit format module */ diff --git a/libdecnumber/dpd/decimal32.c b/libdecnumber/dpd/decimal32.c index 53f29789d7..34ff0fe959 100644 --- a/libdecnumber/dpd/decimal32.c +++ b/libdecnumber/dpd/decimal32.c @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal 32-bit format module */ diff --git a/libdecnumber/dpd/decimal64.c b/libdecnumber/dpd/decimal64.c index 290dbe8177..11e0674fa7 100644 --- a/libdecnumber/dpd/decimal64.c +++ b/libdecnumber/dpd/decimal64.c @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal 64-bit format module */ From 36d7484b0cbd6a6c9e6945d90e4298bec0ff661b Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:43:40 -0400 Subject: [PATCH 11/19] include/libdecnumber: replace FSF postal address with licenses URL Some of the GPLv2 boiler-plate still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Thomas Huth Message-ID: <20250613.qemu.patch.04@sean.taipei> Signed-off-by: Thomas Huth --- include/libdecnumber/dconfig.h | 5 ++--- include/libdecnumber/decContext.h | 5 ++--- include/libdecnumber/decDPD.h | 5 ++--- include/libdecnumber/decNumber.h | 5 ++--- include/libdecnumber/decNumberLocal.h | 5 ++--- include/libdecnumber/dpd/decimal128.h | 5 ++--- include/libdecnumber/dpd/decimal128Local.h | 5 ++--- include/libdecnumber/dpd/decimal32.h | 5 ++--- include/libdecnumber/dpd/decimal64.h | 5 ++--- 9 files changed, 18 insertions(+), 27 deletions(-) diff --git a/include/libdecnumber/dconfig.h b/include/libdecnumber/dconfig.h index 2bc0ba7f14..e67ecc1b5f 100644 --- a/include/libdecnumber/dconfig.h +++ b/include/libdecnumber/dconfig.h @@ -23,9 +23,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ #if HOST_BIG_ENDIAN diff --git a/include/libdecnumber/decContext.h b/include/libdecnumber/decContext.h index cea6e4279e..5bb64e1332 100644 --- a/include/libdecnumber/decContext.h +++ b/include/libdecnumber/decContext.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal Context module header */ diff --git a/include/libdecnumber/decDPD.h b/include/libdecnumber/decDPD.h index 26a21ec8ed..8eb455277b 100644 --- a/include/libdecnumber/decDPD.h +++ b/include/libdecnumber/decDPD.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------------ */ /* Binary Coded Decimal and Densely Packed Decimal conversion lookup tables */ diff --git a/include/libdecnumber/decNumber.h b/include/libdecnumber/decNumber.h index 41bc2a0d36..bf37af83e6 100644 --- a/include/libdecnumber/decNumber.h +++ b/include/libdecnumber/decNumber.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal Number arithmetic module header */ diff --git a/include/libdecnumber/decNumberLocal.h b/include/libdecnumber/decNumberLocal.h index 6198ca8593..0959f6606b 100644 --- a/include/libdecnumber/decNumberLocal.h +++ b/include/libdecnumber/decNumberLocal.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* decNumber package local type, tuning, and macro definitions */ diff --git a/include/libdecnumber/dpd/decimal128.h b/include/libdecnumber/dpd/decimal128.h index aff261e556..c57180baf8 100644 --- a/include/libdecnumber/dpd/decimal128.h +++ b/include/libdecnumber/dpd/decimal128.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal 128-bit format module header */ diff --git a/include/libdecnumber/dpd/decimal128Local.h b/include/libdecnumber/dpd/decimal128Local.h index 9765427719..2948ab2534 100644 --- a/include/libdecnumber/dpd/decimal128Local.h +++ b/include/libdecnumber/dpd/decimal128Local.h @@ -23,9 +23,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ #if !defined(DECIMAL128LOCAL) diff --git a/include/libdecnumber/dpd/decimal32.h b/include/libdecnumber/dpd/decimal32.h index 6cb9e43620..9a17933497 100644 --- a/include/libdecnumber/dpd/decimal32.h +++ b/include/libdecnumber/dpd/decimal32.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal 32-bit format module header */ diff --git a/include/libdecnumber/dpd/decimal64.h b/include/libdecnumber/dpd/decimal64.h index f29e57064d..5c3d0bb43c 100644 --- a/include/libdecnumber/dpd/decimal64.h +++ b/include/libdecnumber/dpd/decimal64.h @@ -24,9 +24,8 @@ for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with GCC; see the file COPYING. If not, see + . */ /* ------------------------------------------------------------------ */ /* Decimal 64-bit format module header */ From e5308bc52d25da207fbb1cd7b557201b6612fd61 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:44:10 -0400 Subject: [PATCH 12/19] include/hw: replace FSF postal address with licenses URL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some of the GPLv2 boiler-plate still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Cédric Le Goater Message-ID: <20250613.qemu.patch.05@sean.taipei> Signed-off-by: Thomas Huth --- include/hw/i2c/aspeed_i2c.h | 3 +-- include/hw/pci/pci_bridge.h | 4 ++-- include/hw/timer/aspeed_timer.h | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/hw/i2c/aspeed_i2c.h b/include/hw/i2c/aspeed_i2c.h index 2c4c81bd20..2daacc10ce 100644 --- a/include/hw/i2c/aspeed_i2c.h +++ b/include/hw/i2c/aspeed_i2c.h @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * with this program; if not, see . */ #ifndef ASPEED_I2C_H diff --git a/include/hw/pci/pci_bridge.h b/include/hw/pci/pci_bridge.h index b0f5204d80..8cdacbc4e1 100644 --- a/include/hw/pci/pci_bridge.h +++ b/include/hw/pci/pci_bridge.h @@ -14,8 +14,8 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * along with this program; if not, see + * . * * split out pci bus specific stuff from pci.[hc] to pci_bridge.[hc] * Copyright (c) 2009 Isaku Yamahata diff --git a/include/hw/timer/aspeed_timer.h b/include/hw/timer/aspeed_timer.h index 767cae4b05..a850625a05 100644 --- a/include/hw/timer/aspeed_timer.h +++ b/include/hw/timer/aspeed_timer.h @@ -16,8 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * with this program; if not, see . */ #ifndef ASPEED_TIMER_H #define ASPEED_TIMER_H From c61b807e625846871e3d142a9f101d58f7ee2522 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:46:15 -0400 Subject: [PATCH 13/19] include/qemu: replace FSF postal address with licenses URL The LGPLv2.1 boiler-plate in rcu.h and rcu_queue.h still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Thomas Huth Message-ID: <20250613.qemu.patch.06@sean.taipei> Signed-off-by: Thomas Huth --- include/qemu/rcu.h | 4 ++-- include/qemu/rcu_queue.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h index fea058aa9f..020dbe4d8b 100644 --- a/include/qemu/rcu.h +++ b/include/qemu/rcu.h @@ -17,8 +17,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * License along with this library; if not, see + * . * * IBM's contributions to this file may be relicensed under LGPLv2 or later. */ diff --git a/include/qemu/rcu_queue.h b/include/qemu/rcu_queue.h index 4e6298d473..bfd5900fda 100644 --- a/include/qemu/rcu_queue.h +++ b/include/qemu/rcu_queue.h @@ -17,8 +17,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * License along with this library; if not, see + * . * * Copyright (c) 2013 Mike D. Day, IBM Corporation. * From 145c3e54be7fa5e4f0a2ac527db28e27940dab91 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:46:50 -0400 Subject: [PATCH 14/19] util/rcu.c: replace FSF postal address with licenses URL The LGPLv2.1 boiler-plate in util/rcu.c still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Thomas Huth Message-ID: <20250613.qemu.patch.07@sean.taipei> Signed-off-by: Thomas Huth --- util/rcu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/rcu.c b/util/rcu.c index fa32c942e4..b703c86f15 100644 --- a/util/rcu.c +++ b/util/rcu.c @@ -20,8 +20,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * License along with this library; if not, see + * . * * IBM's contributions to this file may be relicensed under LGPLv2 or later. */ From 49b91833cc671c30fd2a074a92c50c858d6ec055 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:50:20 -0400 Subject: [PATCH 15/19] hw: replace FSF postal address with licenses URL The GPLv2 boiler-plate in vmxnet3.h and vmw_pvscsi.h still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Thomas Huth Message-ID: <20250613.qemu.patch.08@sean.taipei> Signed-off-by: Thomas Huth --- hw/net/vmxnet3.h | 4 ++-- hw/scsi/vmw_pvscsi.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/net/vmxnet3.h b/hw/net/vmxnet3.h index f9283f9e7b..dbc69d5fb6 100644 --- a/hw/net/vmxnet3.h +++ b/hw/net/vmxnet3.h @@ -63,8 +63,8 @@ * details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * along with this program; if not, see + * . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". diff --git a/hw/scsi/vmw_pvscsi.h b/hw/scsi/vmw_pvscsi.h index 17fcf66273..a3ae517e19 100644 --- a/hw/scsi/vmw_pvscsi.h +++ b/hw/scsi/vmw_pvscsi.h @@ -14,8 +14,8 @@ * details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * along with this program; if not, see + * . * * Maintained by: Arvind Kumar * From 19f5891f2ee6bdebc4c522ea5744f4d4ea7365f1 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:51:45 -0400 Subject: [PATCH 16/19] scripts: replace FSF postal address with licenses URL The GPLv2 boiler-plate in scripts/device-crash-test still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Thomas Huth Message-ID: <20250613.qemu.patch.09@sean.taipei> Signed-off-by: Thomas Huth --- scripts/device-crash-test | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/device-crash-test b/scripts/device-crash-test index da8b56edd9..1ecb9663ae 100755 --- a/scripts/device-crash-test +++ b/scripts/device-crash-test @@ -16,8 +16,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# with this program; if not, see . """ Run QEMU with all combinations of -machine and -device types, From e656492766ce947cf0699e0e3d602a2587ac38d3 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:53:00 -0400 Subject: [PATCH 17/19] contrib: replace FSF postal address with licenses URL The LGPLv2.1 boiler-plate in pdb.c file still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Akihiko Odaki Message-ID: <20250613.qemu.patch.10@sean.taipei> Signed-off-by: Thomas Huth --- contrib/elf2dmp/pdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/elf2dmp/pdb.c b/contrib/elf2dmp/pdb.c index 492aca4434..47c5126fb8 100644 --- a/contrib/elf2dmp/pdb.c +++ b/contrib/elf2dmp/pdb.c @@ -14,8 +14,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * License along with this library; if not, see + * . */ #include "qemu/osdep.h" From e38bdca0cab79a652ad4d619044857a2fe2a447b Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:53:32 -0400 Subject: [PATCH 18/19] target/xtensa: replace FSF postal address with licenses URL Some of the GPLv2 boiler-plate still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Acked-by: Max Filippov Message-ID: <20250613.qemu.patch.11@sean.taipei> Signed-off-by: Thomas Huth --- target/xtensa/core-dc232b/gdb-config.c.inc | 5 ++--- target/xtensa/core-dc232b/xtensa-modules.c.inc | 5 ++--- target/xtensa/core-fsf/xtensa-modules.c.inc | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/target/xtensa/core-dc232b/gdb-config.c.inc b/target/xtensa/core-dc232b/gdb-config.c.inc index d87168628b..8c88caef59 100644 --- a/target/xtensa/core-dc232b/gdb-config.c.inc +++ b/target/xtensa/core-dc232b/gdb-config.c.inc @@ -15,9 +15,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program; if not, see + . */ XTREG(0, 0, 32, 4, 4, 0x0020, 0x0006, -2, 9, 0x0100, pc, 0, 0, 0, 0, 0, 0) diff --git a/target/xtensa/core-dc232b/xtensa-modules.c.inc b/target/xtensa/core-dc232b/xtensa-modules.c.inc index 164df3b1a4..bb9ebd24b8 100644 --- a/target/xtensa/core-dc232b/xtensa-modules.c.inc +++ b/target/xtensa/core-dc232b/xtensa-modules.c.inc @@ -14,9 +14,8 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program; if not, see + . */ #include "qemu/osdep.h" #include "xtensa-isa.h" diff --git a/target/xtensa/core-fsf/xtensa-modules.c.inc b/target/xtensa/core-fsf/xtensa-modules.c.inc index c32683ff77..531f5e2b7e 100644 --- a/target/xtensa/core-fsf/xtensa-modules.c.inc +++ b/target/xtensa/core-fsf/xtensa-modules.c.inc @@ -14,9 +14,8 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program; if not, see + . */ #include "qemu/osdep.h" #include "xtensa-isa.h" From fd68168e0af14546117705176ace84d2c6c52416 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 12:54:20 -0400 Subject: [PATCH 19/19] target/i386/emulate: replace FSF postal address with licenses URL Some of the LGPLv2.1 boiler-plate still contained the obsolete "51 Franklin Street" postal address. Replace it with the canonical GNU licenses URL recommended by the FSF: https://www.gnu.org/licenses/ Signed-off-by: Sean Wei Reviewed-by: Wei Liu Message-ID: <20250613.qemu.patch.12@sean.taipei> Signed-off-by: Thomas Huth --- target/i386/emulate/x86_emu.c | 4 ++-- target/i386/emulate/x86_flags.c | 4 ++-- target/i386/emulate/x86_flags.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/i386/emulate/x86_emu.c b/target/i386/emulate/x86_emu.c index 4890e0a4e5..db7a7f7437 100644 --- a/target/i386/emulate/x86_emu.c +++ b/target/i386/emulate/x86_emu.c @@ -31,8 +31,8 @@ // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA +// License along with this library; if not, see +// . ///////////////////////////////////////////////////////////////////////// #include "qemu/osdep.h" diff --git a/target/i386/emulate/x86_flags.c b/target/i386/emulate/x86_flags.c index cc138c7749..6592193b5e 100644 --- a/target/i386/emulate/x86_flags.c +++ b/target/i386/emulate/x86_flags.c @@ -14,8 +14,8 @@ // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA +// License along with this library; if not, see +// . ///////////////////////////////////////////////////////////////////////// /* * flags functions diff --git a/target/i386/emulate/x86_flags.h b/target/i386/emulate/x86_flags.h index 28b008e577..a395c837a0 100644 --- a/target/i386/emulate/x86_flags.h +++ b/target/i386/emulate/x86_flags.h @@ -14,8 +14,8 @@ // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA +// License along with this library; if not, see +// . ///////////////////////////////////////////////////////////////////////// /* * x86 eflags functions