mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20140616' into staging
migration/next for 20140616 # gpg: Signature made Mon 16 Jun 2014 04:10:18 BST using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * remotes/juanquintela/tags/migration/20140616: migration: catch unknown flags in ram_load rdma: Fix block during rdma migration migration: Increase default max_downtime from 30ms to 300ms vmstate: Refactor opening of files savevm: Remove all the unneeded version_minimum_id_old (x86) savevm: Remove all the unneeded version_minimum_id_old (ppc) Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
+23
-19
@@ -1040,17 +1040,15 @@ static int ram_load(QEMUFile *f, void *opaque, int version_id)
|
||||
{
|
||||
ram_addr_t addr;
|
||||
int flags, ret = 0;
|
||||
int error;
|
||||
static uint64_t seq_iter;
|
||||
|
||||
seq_iter++;
|
||||
|
||||
if (version_id != 4) {
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
|
||||
do {
|
||||
while (!ret) {
|
||||
addr = qemu_get_be64(f);
|
||||
|
||||
flags = addr & ~TARGET_PAGE_MASK;
|
||||
@@ -1078,7 +1076,6 @@ static int ram_load(QEMUFile *f, void *opaque, int version_id)
|
||||
" in != " RAM_ADDR_FMT, id, length,
|
||||
block->length);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1088,21 +1085,22 @@ static int ram_load(QEMUFile *f, void *opaque, int version_id)
|
||||
error_report("Unknown ramblock \"%s\", cannot "
|
||||
"accept migration", id);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
if (ret) {
|
||||
break;
|
||||
}
|
||||
|
||||
total_ram_bytes -= length;
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & RAM_SAVE_FLAG_COMPRESS) {
|
||||
} else if (flags & RAM_SAVE_FLAG_COMPRESS) {
|
||||
void *host;
|
||||
uint8_t ch;
|
||||
|
||||
host = host_from_stream_offset(f, addr, flags);
|
||||
if (!host) {
|
||||
error_report("Illegal RAM offset " RAM_ADDR_FMT, addr);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
break;
|
||||
}
|
||||
|
||||
ch = qemu_get_byte(f);
|
||||
@@ -1112,33 +1110,39 @@ static int ram_load(QEMUFile *f, void *opaque, int version_id)
|
||||
|
||||
host = host_from_stream_offset(f, addr, flags);
|
||||
if (!host) {
|
||||
error_report("Illegal RAM offset " RAM_ADDR_FMT, addr);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
break;
|
||||
}
|
||||
|
||||
qemu_get_buffer(f, host, TARGET_PAGE_SIZE);
|
||||
} else if (flags & RAM_SAVE_FLAG_XBZRLE) {
|
||||
void *host = host_from_stream_offset(f, addr, flags);
|
||||
if (!host) {
|
||||
error_report("Illegal RAM offset " RAM_ADDR_FMT, addr);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
break;
|
||||
}
|
||||
|
||||
if (load_xbzrle(f, addr, host) < 0) {
|
||||
error_report("Failed to decompress XBZRLE page at "
|
||||
RAM_ADDR_FMT, addr);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
break;
|
||||
}
|
||||
} else if (flags & RAM_SAVE_FLAG_HOOK) {
|
||||
ram_control_load_hook(f, flags);
|
||||
} else if (flags & RAM_SAVE_FLAG_EOS) {
|
||||
/* normal exit */
|
||||
break;
|
||||
} else {
|
||||
error_report("Unknown migration flags: %#x", flags);
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
error = qemu_file_get_error(f);
|
||||
if (error) {
|
||||
ret = error;
|
||||
goto done;
|
||||
}
|
||||
} while (!(flags & RAM_SAVE_FLAG_EOS));
|
||||
ret = qemu_file_get_error(f);
|
||||
}
|
||||
|
||||
done:
|
||||
DPRINTF("Completed load of VM with exit code %d seq iteration "
|
||||
"%" PRIu64 "\n", ret, seq_iter);
|
||||
return ret;
|
||||
|
||||
@@ -143,7 +143,6 @@ const VMStateDescription vmstate_ich9_pm = {
|
||||
.name = "ich9_pm",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.post_load = ich9_pm_post_load,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT16(acpi_regs.pm1.evt.sts, ICH9LPCPMRegs),
|
||||
|
||||
+1
-2
@@ -324,8 +324,7 @@ const VMStateDescription vmstate_acpi_pcihp_pci_status = {
|
||||
.name = "acpi_pcihp_pci_status",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(up, AcpiPciHpPciStatus),
|
||||
VMSTATE_UINT32(down, AcpiPciHpPciStatus),
|
||||
VMSTATE_END_OF_LIST()
|
||||
|
||||
+3
-5
@@ -177,8 +177,7 @@ static const VMStateDescription vmstate_gpe = {
|
||||
.name = "gpe",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_GPE_ARRAY(sts, ACPIGPE),
|
||||
VMSTATE_GPE_ARRAY(en, ACPIGPE),
|
||||
VMSTATE_END_OF_LIST()
|
||||
@@ -189,8 +188,7 @@ static const VMStateDescription vmstate_pci_status = {
|
||||
.name = "pci_status",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(up, struct AcpiPciHpPciStatus),
|
||||
VMSTATE_UINT32(down, struct AcpiPciHpPciStatus),
|
||||
VMSTATE_END_OF_LIST()
|
||||
@@ -259,7 +257,7 @@ static const VMStateDescription vmstate_acpi = {
|
||||
.minimum_version_id_old = 1,
|
||||
.load_state_old = acpi_load_old,
|
||||
.post_load = vmstate_acpi_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE(parent_obj, PIIX4PMState),
|
||||
VMSTATE_UINT16(ar.pm1.evt.sts, PIIX4PMState),
|
||||
VMSTATE_UINT16(ar.pm1.evt.en, PIIX4PMState),
|
||||
|
||||
+2
-4
@@ -1163,8 +1163,7 @@ static const VMStateDescription vmstate_ac97_bm_regs = {
|
||||
.name = "ac97_bm_regs",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32 (bdbar, AC97BusMasterRegs),
|
||||
VMSTATE_UINT8 (civ, AC97BusMasterRegs),
|
||||
VMSTATE_UINT8 (lvi, AC97BusMasterRegs),
|
||||
@@ -1211,9 +1210,8 @@ static const VMStateDescription vmstate_ac97 = {
|
||||
.name = "ac97",
|
||||
.version_id = 3,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.post_load = ac97_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE (dev, AC97LinkState),
|
||||
VMSTATE_UINT32 (glob_cnt, AC97LinkState),
|
||||
VMSTATE_UINT32 (glob_sta, AC97LinkState),
|
||||
|
||||
+1
-2
@@ -137,8 +137,7 @@ static const VMStateDescription vmstate_cs4231 = {
|
||||
.name ="cs4231",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32_ARRAY(regs, CSState, CS_REGS),
|
||||
VMSTATE_UINT8_ARRAY(dregs, CSState, CS_DREGS),
|
||||
VMSTATE_END_OF_LIST()
|
||||
|
||||
+1
-2
@@ -621,10 +621,9 @@ static const VMStateDescription vmstate_cs4231a = {
|
||||
.name = "cs4231a",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.pre_load = cs4231a_pre_load,
|
||||
.post_load = cs4231a_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32_ARRAY (regs, CSState, CS_REGS),
|
||||
VMSTATE_BUFFER (dregs, CSState),
|
||||
VMSTATE_INT32 (dma_running, CSState),
|
||||
|
||||
+2
-4
@@ -953,8 +953,7 @@ static const VMStateDescription vmstate_es1370_channel = {
|
||||
.name = "es1370_channel",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32 (shift, struct chan),
|
||||
VMSTATE_UINT32 (leftover, struct chan),
|
||||
VMSTATE_UINT32 (scount, struct chan),
|
||||
@@ -997,9 +996,8 @@ static const VMStateDescription vmstate_es1370 = {
|
||||
.name = "es1370",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.post_load = es1370_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE (dev, ES1370State),
|
||||
VMSTATE_STRUCT_ARRAY (chan, ES1370State, NB_CHANNELS, 2,
|
||||
vmstate_es1370_channel, struct chan),
|
||||
|
||||
+1
-2
@@ -222,8 +222,7 @@ static const VMStateDescription vmstate_gus = {
|
||||
.name = "gus",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_INT32 (pos, GUSState),
|
||||
VMSTATE_INT32 (left, GUSState),
|
||||
VMSTATE_INT32 (shift, GUSState),
|
||||
|
||||
@@ -583,7 +583,7 @@ static void hda_audio_reset(DeviceState *dev)
|
||||
static const VMStateDescription vmstate_hda_audio_stream = {
|
||||
.name = "hda-audio-stream",
|
||||
.version_id = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(stream, HDAAudioStream),
|
||||
VMSTATE_UINT32(channel, HDAAudioStream),
|
||||
VMSTATE_UINT32(format, HDAAudioStream),
|
||||
@@ -601,7 +601,7 @@ static const VMStateDescription vmstate_hda_audio = {
|
||||
.name = "hda-audio",
|
||||
.version_id = 2,
|
||||
.post_load = hda_audio_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_STRUCT_ARRAY(st, HDAAudioState, 4, 0,
|
||||
vmstate_hda_audio_stream,
|
||||
HDAAudioStream),
|
||||
|
||||
@@ -1176,7 +1176,7 @@ static int intel_hda_post_load(void *opaque, int version)
|
||||
static const VMStateDescription vmstate_intel_hda_stream = {
|
||||
.name = "intel-hda-stream",
|
||||
.version_id = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(ctl, IntelHDAStream),
|
||||
VMSTATE_UINT32(lpib, IntelHDAStream),
|
||||
VMSTATE_UINT32(cbl, IntelHDAStream),
|
||||
@@ -1192,7 +1192,7 @@ static const VMStateDescription vmstate_intel_hda = {
|
||||
.name = "intel-hda",
|
||||
.version_id = 1,
|
||||
.post_load = intel_hda_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE(pci, IntelHDAState),
|
||||
|
||||
/* registers */
|
||||
|
||||
+1
-2
@@ -1289,9 +1289,8 @@ static const VMStateDescription vmstate_sb16 = {
|
||||
.name = "sb16",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.post_load = sb16_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32 (irq, SB16State),
|
||||
VMSTATE_UINT32 (dma, SB16State),
|
||||
VMSTATE_UINT32 (hdma, SB16State),
|
||||
|
||||
+6
-10
@@ -672,8 +672,7 @@ static const VMStateDescription vmstate_fdrive_media_changed = {
|
||||
.name = "fdrive/media_changed",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT8(media_changed, FDrive),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
@@ -690,8 +689,7 @@ static const VMStateDescription vmstate_fdrive_media_rate = {
|
||||
.name = "fdrive/media_rate",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT8(media_rate, FDrive),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
@@ -701,8 +699,7 @@ static const VMStateDescription vmstate_fdrive = {
|
||||
.name = "fdrive",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT8(head, FDrive),
|
||||
VMSTATE_UINT8(track, FDrive),
|
||||
VMSTATE_UINT8(sect, FDrive),
|
||||
@@ -741,10 +738,9 @@ static const VMStateDescription vmstate_fdc = {
|
||||
.name = "fdc",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.pre_save = fdc_pre_save,
|
||||
.post_load = fdc_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
/* Controller State */
|
||||
VMSTATE_UINT8(sra, FDCtrl),
|
||||
VMSTATE_UINT8(srb, FDCtrl),
|
||||
@@ -2209,7 +2205,7 @@ static const VMStateDescription vmstate_isa_fdc ={
|
||||
.name = "fdc",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_STRUCT(state, FDCtrlISABus, 0, vmstate_fdc, FDCtrl),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
@@ -2251,7 +2247,7 @@ static const VMStateDescription vmstate_sysbus_fdc ={
|
||||
.name = "fdc",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_STRUCT(state, FDCtrlSysBus, 0, vmstate_fdc, FDCtrl),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
|
||||
+2
-4
@@ -660,8 +660,7 @@ static const VMStateDescription vmstate_escc_chn = {
|
||||
.name ="escc_chn",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(vmstate_dummy, ChannelState),
|
||||
VMSTATE_UINT32(reg, ChannelState),
|
||||
VMSTATE_UINT32(rxint, ChannelState),
|
||||
@@ -680,8 +679,7 @@ static const VMStateDescription vmstate_escc = {
|
||||
.name ="escc",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_STRUCT_ARRAY(chn, ESCCState, 2, 2, vmstate_escc_chn,
|
||||
ChannelState),
|
||||
VMSTATE_END_OF_LIST()
|
||||
|
||||
@@ -159,7 +159,7 @@ static const VMStateDescription vmstate_pci_serial = {
|
||||
.name = "pci-serial",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE(dev, PCISerialState),
|
||||
VMSTATE_STRUCT(state, PCISerialState, 0, vmstate_serial, SerialState),
|
||||
VMSTATE_END_OF_LIST()
|
||||
@@ -170,7 +170,7 @@ static const VMStateDescription vmstate_pci_multi_serial = {
|
||||
.name = "pci-serial-multi",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE(dev, PCIMultiSerialState),
|
||||
VMSTATE_STRUCT_ARRAY(state, PCIMultiSerialState, PCI_SERIAL_MAX_PORTS,
|
||||
0, vmstate_serial, SerialState),
|
||||
|
||||
+1
-1
@@ -602,7 +602,7 @@ const VMStateDescription vmstate_serial = {
|
||||
.minimum_version_id = 2,
|
||||
.pre_save = serial_pre_save,
|
||||
.post_load = serial_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT16_V(divider, SerialState, 2),
|
||||
VMSTATE_UINT8(rbr, SerialState),
|
||||
VMSTATE_UINT8(ier, SerialState),
|
||||
|
||||
+1
-2
@@ -148,8 +148,7 @@ static const VMStateDescription vmstate_spapr_vty = {
|
||||
.name = "spapr_vty",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_SPAPR_VIO(sdev, VIOsPAPRVTYDevice),
|
||||
|
||||
VMSTATE_UINT32(in, VIOsPAPRVTYDevice),
|
||||
|
||||
@@ -2702,9 +2702,8 @@ static const VMStateDescription vmstate_cirrus_vga = {
|
||||
.name = "cirrus_vga",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.post_load = cirrus_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(vga.latch, CirrusVGAState),
|
||||
VMSTATE_UINT8(vga.sr_index, CirrusVGAState),
|
||||
VMSTATE_BUFFER(vga.sr, CirrusVGAState),
|
||||
@@ -2742,8 +2741,7 @@ static const VMStateDescription vmstate_pci_cirrus_vga = {
|
||||
.name = "cirrus_vga",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE(dev, PCICirrusVGAState),
|
||||
VMSTATE_STRUCT(cirrus_vga, PCICirrusVGAState, 0,
|
||||
vmstate_cirrus_vga, CirrusVGAState),
|
||||
|
||||
@@ -54,8 +54,7 @@ static const VMStateDescription vmstate_vga_pci = {
|
||||
.name = "vga",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_PCI_DEVICE(dev, PCIVGAState),
|
||||
VMSTATE_STRUCT(vga, PCIVGAState, 0, vmstate_vga_common, VGACommonState),
|
||||
VMSTATE_END_OF_LIST()
|
||||
|
||||
+1
-2
@@ -2214,9 +2214,8 @@ const VMStateDescription vmstate_vga_common = {
|
||||
.name = "vga",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 2,
|
||||
.minimum_version_id_old = 2,
|
||||
.post_load = vga_common_post_load,
|
||||
.fields = (VMStateField []) {
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(latch, VGACommonState),
|
||||
VMSTATE_UINT8(sr_index, VGACommonState),
|
||||
VMSTATE_PARTIAL_BUFFER(sr, VGACommonState, 8),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user