qemu-cr16/hw/net
Philippe Mathieu-Daudé efd6b3d176 Revert "hw/net/virtio-net: make VirtIONet.vlans an array instead of a pointer"
Per https://lore.kernel.org/qemu-devel/7798584d-e861-47b7-af52-2c2efb67a4de@proxmox.com/:

Loading a VM state taken with v10.1.2 or older doesn't work anymore,
using the script [*] we get:

  kvm: VQ 1 size 0x100 < last_avail_idx 0x9 - used_idx 0x3e30
  kvm: load of migration failed: Operation not permitted: error while loading state for instance 0x0 of device '0000:00:13.0/virtio-net': Failed to load element of type virtio for virtio: -1
  qemu-system-x86_64: Missing section footer for 0000:00:13.0/virtio-net
  qemu-system-x86_64: Section footer error, section_id: 41

[*]:

  #!/bin/bash
  rm /tmp/disk.qcow2
  args="
    -netdev type=tap,id=net1,ifname=tap104i1,script=/usr/libexec/qemu-server/pve-bridge,downscript=/usr/libexec/qemu-server/pve-bridgedown,vhost=on
    -device virtio-net-pci,mac=BC:24:11:32:3C:69,netdev=net1,bus=pci.0,addr=0x13,id=net1
    -machine type=pc-i440fx-10.1
  "
  $1/qemu-img create -f qcow2 /tmp/disk.qcow2 1G
  $1/qemu-system-x86_64 --qmp stdio --blockdev qcow2,node-name=node0,file.driver=file,file.filename=/tmp/disk.qcow2 $args <<EOF
  {"execute": "qmp_capabilities"}
  {"execute": "snapshot-save", "arguments": { "job-id": "save0", "tag": "snap", "vmstate": "node0", "devices": ["node0"] } }
  {"execute": "quit"}
  EOF
  $2/qemu-system-x86_64 --qmp stdio --blockdev qcow2,node-name=node0,file.driver=file,file.filename=/tmp/disk.qcow2 $args -loadvm snap

This reverts commit 3a9cd2a4a1.

Reported-by: Fiona Ebner <f.ebner@proxmox.com>
Suggested-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-12-09 21:00:15 +01:00
..
can hw/net/can/xlnx-versal-canfd: remove register API usage for banked regs 2025-10-21 20:16:47 +02:00
fsl_etsec qom: remove redundant typedef when use OBJECT_DECLARE_SIMPLE_TYPE 2025-10-28 08:08:04 +01:00
rocker hw/net/rocker: Don't overflow in of_dpa_mask2prefix() 2025-10-23 14:13:38 +01:00
allwinner-sun8i-emac.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner_emac.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cadence_gem.c hw/net/cadence_gem: Add pcs-enabled property 2025-10-24 09:24:08 +10:00
dp8393x.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
e1000.c hw/net/e1000: Remove unused E1000_FLAG_MAC flag 2025-05-30 09:52:08 +02:00
e1000_common.h e1000: Split header files 2023-03-10 15:35:38 +08:00
e1000_regs.h hw/net: spelling fixes 2023-09-20 07:54:34 +03:00
e1000e.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
e1000e_core.c hw/net/e1000e_core: Adjust e1000e_write_payload_frag_to_rx_buffers() assert 2025-11-14 09:59:55 +08:00
e1000e_core.h e1000e: fix link state on resume 2024-03-12 19:28:32 +08:00
e1000x_common.c e1000x: Take CRC into consideration for size check 2023-05-23 15:20:15 +08:00
e1000x_common.h e1000x: Share more Rx filtering logic 2023-05-23 15:20:15 +08:00
e1000x_regs.h hw/net/e1000: Remove stray empty comment in header 2025-05-09 23:49:26 +03:00
eepro100.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ftgmac100.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
i82596.c i82596: Adding proper break-statement functionality in RX functions 2025-11-07 11:18:32 +01:00
i82596.h i82596: Added core infrastructure and helper functions 2025-11-04 16:14:51 +01:00
igb.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
igb_common.h igb: Add a VF reset handler 2023-11-13 15:33:37 +08:00
igb_core.c net: bundle all offloads in a single struct 2025-10-04 10:50:36 -04:00
igb_core.h igb: fix link state on resume 2024-03-12 19:28:31 +08:00
igb_regs.h license: Update deprecated SPDX tag GPL-2.0 to GPL-2.0-only 2024-09-20 10:11:59 +03:00
igbvf.c pcie_sriov: Fix broken MMIO accesses from SR-IOV VFs 2025-10-05 09:01:08 -04:00
imx_fec.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
Kconfig hw/net: Remove mipsnet device model 2025-09-02 17:57:05 +02:00
lan9118.c qemu: Declare all load/store helper in 'qemu/bswap.h' 2025-07-15 02:56:39 -04:00
lan9118_phy.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
lance.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
lasi_i82596.c i82596: Added core infrastructure and helper functions 2025-11-04 16:14:51 +01:00
mcf_fec.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
meson.build hw/net: Remove mipsnet device model 2025-09-02 17:57:05 +02:00
msf2-emac.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mv88w8618_eth.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ne2000-isa.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ne2000-pci.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ne2000.c include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
ne2000.h
net_rx_pkt.c hw/net/net_rx_pkt: Remove deadcode 2024-10-03 17:26:05 +03:00
net_rx_pkt.h hw/net/net_rx_pkt: Remove deadcode 2024-10-03 17:26:05 +03:00
net_tx_pkt.c Revert "hw/net/net_tx_pkt: Fix overrun in update_sctp_checksum()" 2025-03-10 17:07:16 +08:00
net_tx_pkt.h igb: Implement Tx SCTP CSO 2023-05-23 15:20:15 +08:00
npcm7xx_emc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm_gmac.c hw/net/npcm_gmac.c: Drop 'buf' local variable 2025-07-21 10:21:51 +08:00
npcm_pcs.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
opencores_eth.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pcnet-pci.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pcnet.c Avoid unaligned fetch in ladr_match() 2024-03-12 19:28:32 +08:00
pcnet.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
rtl8139.c qemu: Declare all load/store helper in 'qemu/bswap.h' 2025-07-15 02:56:39 -04:00
smc91c111.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
spapr_llan.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stellaris_enet.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sungem.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
sunhme.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
trace-events i82596: Implement enhanced TX/RX with packet queuing and filtering 2025-11-04 16:14:51 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
tulip.c hw/net/tulip: skip automatic zero-init of large array 2025-06-12 13:40:15 -04:00
tulip.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
vhost_net-stub.c vhost-net: implement extended features support 2025-10-04 10:50:37 -04:00
vhost_net.c vhost-net: implement extended features support 2025-10-04 10:50:37 -04:00
virtio-net.c Revert "hw/net/virtio-net: make VirtIONet.vlans an array instead of a pointer" 2025-12-09 21:00:15 +01:00
vmware_utils.h
vmxnet3.c net: bundle all offloads in a single struct 2025-10-04 10:50:36 -04:00
vmxnet3.h hw: replace FSF postal address with licenses URL 2025-06-26 00:42:37 +02:00
vmxnet3_defs.h include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
vmxnet_debug.h
xen_nic.c qom: remove redundant typedef when use OBJECT_DECLARE_SIMPLE_TYPE 2025-10-28 08:08:04 +01:00
xgmac.c hw/net/xgamc: skip automatic zero-init of large array 2025-06-12 13:40:16 -04:00
xilinx_axienet.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xilinx_ethlite.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00