From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org, Juan Quintela <quintela@redhat.com>
Subject: Re: [PATCH] Remove unnecessary minimum_version_id_old fields
Date: Thu, 20 Jan 2022 10:39:26 +0000 [thread overview]
Message-ID: <Yek73jGksGrGBdAZ@work-vm> (raw)
In-Reply-To: <20220118104434.4117879-1-peter.maydell@linaro.org>
* Peter Maydell (peter.maydell@linaro.org) wrote:
> The migration code will not look at a VMStateDescription's
> minimum_version_id_old field unless that VMSD has set the
> load_state_old field to something non-NULL. (The purpose of
> minimum_version_id_old is to specify what migration version is needed
> for the code in the function pointed to by load_state_old to be able
> to handle it on incoming migration.)
Agreed;
if (vmsd->load_state_old &&
version_id >= vmsd->minimum_version_id_old) {
> We have exactly one VMSD which still has a load_state_old,
> in the PPC CPU; every other VMSD which sets minimum_version_id_old
> is doing so unnecessarily. Delete all the unnecessary ones.
Yeh
> Commit created with:
> sed -i '/\.minimum_version_id_old/d' $(git grep -l '\.minimum_version_id_old')
> with the one legitimate use then hand-edited back in.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> hw/acpi/cpu.c | 2 --
> hw/acpi/ich9.c | 3 ---
> hw/acpi/memory_hotplug.c | 2 --
> hw/acpi/piix4.c | 2 --
> hw/acpi/tco.c | 1 -
> hw/audio/pcspk.c | 1 -
> hw/display/macfb.c | 1 -
> hw/dma/xlnx-zdma.c | 1 -
> hw/dma/xlnx_csu_dma.c | 1 -
> hw/gpio/imx_gpio.c | 1 -
> hw/misc/bcm2835_mbox.c | 1 -
> hw/net/can/can_kvaser_pci.c | 1 -
> hw/net/can/can_mioe3680_pci.c | 1 -
> hw/net/can/can_pcm3680_pci.c | 1 -
> hw/net/can/can_sja1000.c | 2 --
> hw/net/can/ctucan_core.c | 2 --
> hw/net/can/ctucan_pci.c | 1 -
> hw/ppc/ppc.c | 1 -
> hw/scsi/megasas.c | 1 -
> hw/scsi/mptsas.c | 1 -
> hw/virtio/virtio-mmio.c | 1 -
> hw/virtio/virtio-pci.c | 1 -
> hw/virtio/virtio.c | 1 -
> target/openrisc/machine.c | 1 -
> target/ppc/machine.c | 1 -
> target/sparc/machine.c | 4 ----
> 26 files changed, 36 deletions(-)
>
> diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
> index b20903ea303..3646dbfe68a 100644
> --- a/hw/acpi/cpu.c
> +++ b/hw/acpi/cpu.c
> @@ -297,7 +297,6 @@ static const VMStateDescription vmstate_cpuhp_sts = {
> .name = "CPU hotplug device state",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_BOOL(is_inserting, AcpiCpuStatus),
> VMSTATE_BOOL(is_removing, AcpiCpuStatus),
> @@ -311,7 +310,6 @@ const VMStateDescription vmstate_cpu_hotplug = {
> .name = "CPU hotplug state",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32(selector, CPUHotplugState),
> VMSTATE_UINT8(command, CPUHotplugState),
> diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
> index ebe08ed831f..bd9bbade705 100644
> --- a/hw/acpi/ich9.c
> +++ b/hw/acpi/ich9.c
> @@ -163,7 +163,6 @@ static const VMStateDescription vmstate_memhp_state = {
> .name = "ich9_pm/memhp",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = vmstate_test_use_memhp,
> .fields = (VMStateField[]) {
> VMSTATE_MEMORY_HOTPLUG(acpi_memory_hotplug, ICH9LPCPMRegs),
> @@ -181,7 +180,6 @@ static const VMStateDescription vmstate_tco_io_state = {
> .name = "ich9_pm/tco",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = vmstate_test_use_tco,
> .fields = (VMStateField[]) {
> VMSTATE_STRUCT(tco_regs, ICH9LPCPMRegs, 1, vmstate_tco_io_sts,
> @@ -208,7 +206,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
> .name = "ich9_pm/cpuhp",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = vmstate_test_use_cpuhp,
> .pre_load = vmstate_cpuhp_pre_load,
> .fields = (VMStateField[]) {
> diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
> index d0fffcf7870..a581a2183b2 100644
> --- a/hw/acpi/memory_hotplug.c
> +++ b/hw/acpi/memory_hotplug.c
> @@ -318,7 +318,6 @@ static const VMStateDescription vmstate_memhp_sts = {
> .name = "memory hotplug device state",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_BOOL(is_enabled, MemStatus),
> VMSTATE_BOOL(is_inserting, MemStatus),
> @@ -332,7 +331,6 @@ const VMStateDescription vmstate_memory_hotplug = {
> .name = "memory hotplug state",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32(selector, MemHotplugState),
> VMSTATE_STRUCT_VARRAY_POINTER_UINT32(devs, MemHotplugState, dev_count,
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index f0b5fac44a1..cc37fa34168 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -230,7 +230,6 @@ static const VMStateDescription vmstate_memhp_state = {
> .name = "piix4_pm/memhp",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = vmstate_test_use_memhp,
> .fields = (VMStateField[]) {
> VMSTATE_MEMORY_HOTPLUG(acpi_memory_hotplug, PIIX4PMState),
> @@ -255,7 +254,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
> .name = "piix4_pm/cpuhp",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = vmstate_test_use_cpuhp,
> .pre_load = vmstate_cpuhp_pre_load,
> .fields = (VMStateField[]) {
> diff --git a/hw/acpi/tco.c b/hw/acpi/tco.c
> index cf1e68a5393..4783721e4e7 100644
> --- a/hw/acpi/tco.c
> +++ b/hw/acpi/tco.c
> @@ -239,7 +239,6 @@ const VMStateDescription vmstate_tco_io_sts = {
> .name = "tco io device status",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT16(tco.rld, TCOIORegs),
> VMSTATE_UINT8(tco.din, TCOIORegs),
> diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
> index b056c05387c..dfc7ebca4e1 100644
> --- a/hw/audio/pcspk.c
> +++ b/hw/audio/pcspk.c
> @@ -209,7 +209,6 @@ static const VMStateDescription vmstate_spk = {
> .name = "pcspk",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = migrate_needed,
> .fields = (VMStateField[]) {
> VMSTATE_UINT8(data_on, PCSpkState),
> diff --git a/hw/display/macfb.c b/hw/display/macfb.c
> index 4bd7c3ad6a5..2eeb80cc3f0 100644
> --- a/hw/display/macfb.c
> +++ b/hw/display/macfb.c
> @@ -616,7 +616,6 @@ static const VMStateDescription vmstate_macfb = {
> .name = "macfb",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .post_load = macfb_post_load,
> .fields = (VMStateField[]) {
> VMSTATE_UINT8_ARRAY(color_palette, MacfbState, 256 * 3),
> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
> index a5a92b4ff8c..4eb7f66e9f8 100644
> --- a/hw/dma/xlnx-zdma.c
> +++ b/hw/dma/xlnx-zdma.c
> @@ -806,7 +806,6 @@ static const VMStateDescription vmstate_zdma = {
> .name = TYPE_XLNX_ZDMA,
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32_ARRAY(regs, XlnxZDMA, ZDMA_R_MAX),
> VMSTATE_UINT32(state, XlnxZDMA),
> diff --git a/hw/dma/xlnx_csu_dma.c b/hw/dma/xlnx_csu_dma.c
> index 896bb3574dd..5b62a2f74f7 100644
> --- a/hw/dma/xlnx_csu_dma.c
> +++ b/hw/dma/xlnx_csu_dma.c
> @@ -663,7 +663,6 @@ static const VMStateDescription vmstate_xlnx_csu_dma = {
> .name = TYPE_XLNX_CSU_DMA,
> .version_id = 0,
> .minimum_version_id = 0,
> - .minimum_version_id_old = 0,
> .fields = (VMStateField[]) {
> VMSTATE_PTIMER(src_timer, XlnxCSUDMA),
> VMSTATE_UINT16(width, XlnxCSUDMA),
> diff --git a/hw/gpio/imx_gpio.c b/hw/gpio/imx_gpio.c
> index 7a591804a99..c7f98b7bb15 100644
> --- a/hw/gpio/imx_gpio.c
> +++ b/hw/gpio/imx_gpio.c
> @@ -277,7 +277,6 @@ static const VMStateDescription vmstate_imx_gpio = {
> .name = TYPE_IMX_GPIO,
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32(dr, IMXGPIOState),
> VMSTATE_UINT32(gdir, IMXGPIOState),
> diff --git a/hw/misc/bcm2835_mbox.c b/hw/misc/bcm2835_mbox.c
> index 9f73cbd5e41..04e53c98282 100644
> --- a/hw/misc/bcm2835_mbox.c
> +++ b/hw/misc/bcm2835_mbox.c
> @@ -271,7 +271,6 @@ static const VMStateDescription vmstate_bcm2835_mbox = {
> .name = TYPE_BCM2835_MBOX,
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_BOOL_ARRAY(available, BCM2835MboxState, MBOX_CHAN_COUNT),
> VMSTATE_STRUCT_ARRAY(mbox, BCM2835MboxState, 2, 1,
> diff --git a/hw/net/can/can_kvaser_pci.c b/hw/net/can/can_kvaser_pci.c
> index 168b3a620d9..94b3a534f84 100644
> --- a/hw/net/can/can_kvaser_pci.c
> +++ b/hw/net/can/can_kvaser_pci.c
> @@ -266,7 +266,6 @@ static const VMStateDescription vmstate_kvaser_pci = {
> .name = "kvaser_pci",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_PCI_DEVICE(dev, KvaserPCIState),
> /* Load this before sja_state. */
> diff --git a/hw/net/can/can_mioe3680_pci.c b/hw/net/can/can_mioe3680_pci.c
> index 7a79e2605ae..29dc696f7c8 100644
> --- a/hw/net/can/can_mioe3680_pci.c
> +++ b/hw/net/can/can_mioe3680_pci.c
> @@ -203,7 +203,6 @@ static const VMStateDescription vmstate_mioe3680_pci = {
> .name = "mioe3680_pci",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_PCI_DEVICE(dev, Mioe3680PCIState),
> VMSTATE_STRUCT(sja_state[0], Mioe3680PCIState, 0, vmstate_can_sja,
> diff --git a/hw/net/can/can_pcm3680_pci.c b/hw/net/can/can_pcm3680_pci.c
> index 8ef4e74af02..e8e57f4f33e 100644
> --- a/hw/net/can/can_pcm3680_pci.c
> +++ b/hw/net/can/can_pcm3680_pci.c
> @@ -204,7 +204,6 @@ static const VMStateDescription vmstate_pcm3680i_pci = {
> .name = "pcm3680i_pci",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_PCI_DEVICE(dev, Pcm3680iPCIState),
> VMSTATE_STRUCT(sja_state[0], Pcm3680iPCIState, 0,
> diff --git a/hw/net/can/can_sja1000.c b/hw/net/can/can_sja1000.c
> index 34eea684ced..3ba803e947d 100644
> --- a/hw/net/can/can_sja1000.c
> +++ b/hw/net/can/can_sja1000.c
> @@ -928,7 +928,6 @@ const VMStateDescription vmstate_qemu_can_filter = {
> .name = "qemu_can_filter",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32(can_id, qemu_can_filter),
> VMSTATE_UINT32(can_mask, qemu_can_filter),
> @@ -952,7 +951,6 @@ const VMStateDescription vmstate_can_sja = {
> .name = "can_sja",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .post_load = can_sja_post_load,
> .fields = (VMStateField[]) {
> VMSTATE_UINT8(mode, CanSJA1000State),
> diff --git a/hw/net/can/ctucan_core.c b/hw/net/can/ctucan_core.c
> index d171c372e00..f2c3b6a7061 100644
> --- a/hw/net/can/ctucan_core.c
> +++ b/hw/net/can/ctucan_core.c
> @@ -617,7 +617,6 @@ const VMStateDescription vmstate_qemu_ctucan_tx_buffer = {
> .name = "qemu_ctucan_tx_buffer",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT8_ARRAY(data, CtuCanCoreMsgBuffer, CTUCAN_CORE_MSG_MAX_LEN),
> VMSTATE_END_OF_LIST()
> @@ -636,7 +635,6 @@ const VMStateDescription vmstate_ctucan = {
> .name = "ctucan",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .post_load = ctucan_post_load,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32(mode_settings.u32, CtuCanCoreState),
> diff --git a/hw/net/can/ctucan_pci.c b/hw/net/can/ctucan_pci.c
> index f1c86cd06a7..50f4ea6cd63 100644
> --- a/hw/net/can/ctucan_pci.c
> +++ b/hw/net/can/ctucan_pci.c
> @@ -215,7 +215,6 @@ static const VMStateDescription vmstate_ctucan_pci = {
> .name = "ctucan_pci",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_PCI_DEVICE(dev, CtuCanPCIState),
> VMSTATE_STRUCT(ctucan_state[0], CtuCanPCIState, 0, vmstate_ctucan,
> diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
> index bb5bee9a338..462c87dba8b 100644
> --- a/hw/ppc/ppc.c
> +++ b/hw/ppc/ppc.c
> @@ -1049,7 +1049,6 @@ const VMStateDescription vmstate_ppc_timebase = {
> .name = "timebase",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .pre_save = timebase_pre_save,
> .fields = (VMStateField []) {
> VMSTATE_UINT64(guest_timebase, PPCTimebase),
> diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
> index dc9bbdb740e..1a72e52396a 100644
> --- a/hw/scsi/megasas.c
> +++ b/hw/scsi/megasas.c
> @@ -2293,7 +2293,6 @@ static const VMStateDescription vmstate_megasas_gen2 = {
> .name = "megasas-gen2",
> .version_id = 0,
> .minimum_version_id = 0,
> - .minimum_version_id_old = 0,
> .fields = (VMStateField[]) {
> VMSTATE_PCI_DEVICE(parent_obj, MegasasState),
> VMSTATE_MSIX(parent_obj, MegasasState),
> diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
> index 5181b0c0b0d..706cf0df3a1 100644
> --- a/hw/scsi/mptsas.c
> +++ b/hw/scsi/mptsas.c
> @@ -1363,7 +1363,6 @@ static const VMStateDescription vmstate_mptsas = {
> .name = "mptsas",
> .version_id = 0,
> .minimum_version_id = 0,
> - .minimum_version_id_old = 0,
> .post_load = mptsas_post_load,
> .fields = (VMStateField[]) {
> VMSTATE_PCI_DEVICE(dev, MPTSASState),
> diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
> index 72da12fea59..688eccda94d 100644
> --- a/hw/virtio/virtio-mmio.c
> +++ b/hw/virtio/virtio-mmio.c
> @@ -592,7 +592,6 @@ static const VMStateDescription vmstate_virtio_mmio = {
> .name = "virtio_mmio",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_END_OF_LIST()
> },
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 750aa47ec14..f9cf9592fdf 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -131,7 +131,6 @@ static const VMStateDescription vmstate_virtio_pci = {
> .name = "virtio_pci",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_END_OF_LIST()
> },
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index aae72fb8b73..9e8f51dfb03 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -2808,7 +2808,6 @@ static const VMStateDescription vmstate_virtio = {
> .name = "virtio",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_END_OF_LIST()
> },
> diff --git a/target/openrisc/machine.c b/target/openrisc/machine.c
> index 6239725c4f5..b7d73886401 100644
> --- a/target/openrisc/machine.c
> +++ b/target/openrisc/machine.c
> @@ -25,7 +25,6 @@ static const VMStateDescription vmstate_tlb_entry = {
> .name = "tlb_entry",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINTTL(mr, OpenRISCTLBEntry),
> VMSTATE_UINTTL(tr, OpenRISCTLBEntry),
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index 756d8de5d8d..a46aa96e9d8 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -532,7 +532,6 @@ static const VMStateDescription vmstate_tm = {
> .name = "cpu/tm",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .needed = tm_needed,
> .fields = (VMStateField []) {
> VMSTATE_UINTTL_ARRAY(env.tm_gpr, PowerPCCPU, 32),
> diff --git a/target/sparc/machine.c b/target/sparc/machine.c
> index 917375c3a17..44b9e7d75d6 100644
> --- a/target/sparc/machine.c
> +++ b/target/sparc/machine.c
> @@ -10,7 +10,6 @@ static const VMStateDescription vmstate_cpu_timer = {
> .name = "cpu_timer",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT32(frequency, CPUTimer),
> VMSTATE_UINT32(disabled, CPUTimer),
> @@ -30,7 +29,6 @@ static const VMStateDescription vmstate_trap_state = {
> .name = "trap_state",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT64(tpc, trap_state),
> VMSTATE_UINT64(tnpc, trap_state),
> @@ -44,7 +42,6 @@ static const VMStateDescription vmstate_tlb_entry = {
> .name = "tlb_entry",
> .version_id = 1,
> .minimum_version_id = 1,
> - .minimum_version_id_old = 1,
> .fields = (VMStateField[]) {
> VMSTATE_UINT64(tag, SparcTLBEntry),
> VMSTATE_UINT64(tte, SparcTLBEntry),
> @@ -113,7 +110,6 @@ const VMStateDescription vmstate_sparc_cpu = {
> .name = "cpu",
> .version_id = SPARC_VMSTATE_VER,
> .minimum_version_id = SPARC_VMSTATE_VER,
> - .minimum_version_id_old = SPARC_VMSTATE_VER,
> .pre_save = cpu_pre_save,
> .fields = (VMStateField[]) {
> VMSTATE_UINTTL_ARRAY(env.gregs, SPARCCPU, 8),
> --
> 2.25.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2022-01-20 11:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-18 10:44 [PATCH] Remove unnecessary minimum_version_id_old fields Peter Maydell
2022-01-18 11:26 ` Peter Maydell
2022-01-20 10:39 ` Dr. David Alan Gilbert [this message]
2022-01-25 8:27 ` Juan Quintela
2022-01-25 10:36 ` Peter Maydell
2022-01-25 17:07 ` Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yek73jGksGrGBdAZ@work-vm \
--to=dgilbert@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.