[PULL REQUEST] merge latest upstream qemu networking bits

Mark McLoughlin
2009-10-28T14:20:59Z

Hey,

Below is a pull request to merge latest qemu.git/master into
qemu-kvm.git/next

The most notable thing here is that all our networking changes are now
upstream - i.e. there are no longer qemu-kvm specific changes to
net.[ch], net-queue.[ch], savevm.c and hw/virtio-net.c

This has resulted in one intentional regression - in order to use GSO,
you must now use '-netdev tap' rather than '-net tap'. We could continue
to support the latter, but it's never going upstream so we may as well
drop it now.

Another regression is that virtio-net loses it's MAC address, but I've
just sent a fix for that to qemu-devel.

The merge wasn't as straightforward as one might have hoped because many
of the intermediate upstream commits weren't actually buildable because
the patches were mangled as they were applied. I took the approach of
merging those unbuildable commits individually and applying a fixup
patch, so each merge commit should be buildable. Those fixup changes
went away in later merges.

Cheers,
Mark.

The following changes since commit 492fcd3f081d5f297919554aa092d744632e5a7c:
Avi Kivity (1):
Update bios.bin (vapic removal)

are available in the git repository at:

git://repo.or.cz/qemu-kvm/markmc.git master

Amit Shah (3):
char: check for initial_reset_issued unnecessary
char: rename CHR_EVENT_RESET to CHR_EVENT_OPENED
char: emit the OPENED event only when a new char connection is opened

Andre Przywara (1):
target-i386: implement lzcnt emulation

Anthony Liguori (5):
Merge commit 'linux-user/linux-user-for-upstream' into staging
Work around dhclient brokenness
Fix signature of new_vlan_client
really fix net.h
Revert "char: emit the OPENED event only when a new char connection is opened"

Aurelien Jarno (7):
target-arm: remove T0 and T1
target-arm: fix bugs introduced by 3174f8e91fecf8756e861d1febb049f3c619a2c7
target-arm: fix bugs introduced by 1b2b1e547bd912b7d3c4863d0a0f75f6f38330ed
target-arm: use clz32() instead of a for loop
target-arm: fix sdiv helper
target-ppc: move often used CPU fields at the top of the structure
target-arm: use native tcg-ops for ror/bic/vorn

Blue Swirl (20):
x86: add 'static' to please Sparse
Suppress warnings about 'warn_unused_result' attribute directive
bsd-user: fix breakage by 78cfb07fe0dc556cae662a0fab5fe1bd33daabdb
sparc64: remove unused variables
sparc32: convert eccmemctl to reset + vmsd
sparc32: convert slavio_misc to reset + vmsd
sparc32: add chipset docs for eccmemctl
escc: convert to VMState, vmsd and reset
escc: add chipset docs
sparc32: convert cs4231 to VMState, vmsd and reset
esp: convert to reset + vmsd
fdc: convert to reset + vmsd
sparc32: convert slavio_timer to reset + vmsd
m48t59: convert to vmstate reset
sparc32: convert DMA controller to reset + vmsd, fix reset on init
sparc32: convert IOMMU to reset + vmsd
sparc32: convert interrupt controller to reset + vmsd
sparc32: convert Sun4c interrupt controller to reset + vmsd
sparc32: convert sbi to VMState, vmsd and vmstate reset
sparc32: tcx: remove unused include directive

Filip Navara (17):
target-arm: use tcg_global_mem_new_i32 to allocate registers
target-arm: get rid of temporary variable cache
target-arm: remove useless line that sets register that is never used again
target-arm: remove unused gen_movl_T2_reg function
target-arm: fix SRS/RFE instructions
target-arm: get rid of gen_set_psr_T0 and replace it by gen_set_psr/gen_set_psr_im
target-arm: convert gen_lookup_tb not to use cpu_T
target-arm: convert NEON VZIP/VUZP/VTRN helper functions to pure TCG
target-arm: fix TANDC and TORC instructions
target-arm: replace thumb usage of cpu_T registers by proper register allocations
target-arm: convert rest of disas_arm_insn / disas_thumb2_insn not to use cpu_T
target-arm: convert disas_neon_data_insn and helpers not to use cpu_T
target-arm: convert disas_neon_ls_insn not to use cpu_T
target-arm: convert disas_dsp_insn not use cpu_T
target-arm: convert disas_iwmmxt_insn not to use cpu_T
target-arm: convert VFP not to use cpu_T
target-arm: remove cpu_T for ARM once and for all

Gerd Hoffmann (26):
qdev: add string property.
net: add macaddr type.
qdev: mac addr property fixups
qdev: add netdev property
qdev: add vlan property
qdev: add qdev_prop_exists()
qdev/net: common nic property bits
prepare pci nic init path for qdev property configuration.
ne2k_isa: use qdev properties for configuration.
ne2k_pci: use qdev properties for configuration.
e1000: use qdev properties for configuration.
pcnet: use qdev properties for configuration.
pcnet: split away lance.c (sparc32 code).
rtl8139: use qdev properties for configuration.
virtio: use qdev properties for configuration.
eepro100: use qdev properties for configuration.
smc91c111: use qdev properties for configuration.
zap DeviceState->nd
xilinx_ethlite: use qdev properties for configuration.
stellaris_enet: use qdev properties for configuration.
musicpal: use qdev properties for configuration.
kill dead nic unplug code.
isa: configure serial+parallel by index.
hotplug: fix "pci_add storage if=scsi"
hotplug: more fixes for scsi disk hotplug.
pc.c: only load e1000 rom.

Gleb Natapov (1):
net: use qemu_send_packet_raw() in qemu_announce_self()

Jan-Simon Möller (1):
Re: linux-user/syscall.c - don't add GUEST_BASE to NULL pointer

Juan Quintela (67):
usb-uhci: Add num_ports_vmstate to UHCIState
usb-uhci: port to vmstate
mc145818rtc: fix saving of rtc-td hack properly upgrading the version number
mc146818rtc: port rtc to vmstate
mc146818rtc: fix indentation
mc146818rtc: remove rtc_mm_init()
ide: port idebus to vmstate
ide: change identify_data type to uint8_t
vmstate: add VMSTATE_BUFFER_TEST
ide: port ide_drive to vmstate
ide: microdrive cycle field is set as uint8_t
ide: add VMSTATE_IDE_BUS and VMSTATE_IDE_DRIVES
ide: port microdrive to vmstate
ide: include bus in MMIOState
ide: port ide mmio to vmstate
ide: port isa ide to vmstate
ide: port pmac ide to vmstate
ide: port pci ide to vmstate
ide: pre VMState functions are not needed anymore
wdt_i6300esb: port to vmstate
wdt_i6300esb: remove useless casts from void *
wdt_i6300esb: move PCI_DEVICE_IDE_INTEL_ESB_9 to pci_ids.h
ib700: Introduce IB700State
ib700: move timer to IB700State
ib700: port to vmstate
vmstate: Add support for partial buffers transmission
serial: use post_load version_id field and remove pre_load function
vnmstate: fix name for uint8_equal
vmstate: add VMSTATE_UINT16_EQUAL[_V]
vmstate: Rename VMS_VARRAY to VMS_VARRAY_INT32
vmstate: fix indentation
vmstate: factor vmstate_offset_value
vmstate: factor vmstate_offset_pointer
vmstate: factor vmstate_offset_array
vmstate: factor vmstate_offset_buffer
vmstate: factor VMSTATE_*BUFFER* definitions
vmstate: Unfold VMSTATE_INT32_VARRAY() only use and remove it
vmstate: add VMS_VARRAY_UINT16_UNSAFE (varrays with uint16 indexes)
vmstate: Add version arg to VMSTATE_SINGLE_TEST()
vmstate: Add VMSTATE_BUFFER_UNUSED
vmstate: Add VMSTATE_MACADDR for the new type
vmstate: Introduce the concept of sub-arrays
rtl8139: port TallyCounters to vmstate
rtl8139: port to vmstate
eeprom93xx: port to vmstate
eepro100: port to vmstate
pcnet: port to vmstate
ne2000: port to vmstate
e1000: unfold mac_reg_tosave array
e1000: unfold mac_regarraystosave array
e1000: port to vmstate
vga: create is_vbe_vmstate field
vga: port vga_common_save/load to vmstate
vga: port vga-isa-mm to vmstate
vga: port vga-isa to vmstate
vga: port vmware std vga to vmstate
vga: port vga-pci to vmstate
vga: remove unused vga_common_save/load
vmware_vga: Pass pci_vmsga_state_t arg no VGACommonState
vmware_vga: Remove uselss casts from void *
vmware_vga: qemu_malloc() returns void *
vmware_vga: remove !EMBED_STDVGA code
vmware_vga: scratch is really an array of uint32_t
vmware_vga: the support to change dinamically depth is not there
vmware_vga: port to vmstate
vmstate: Add VMSTATE_BUFFER_UNSAFE
lsi_scsi: port to vmstate

Juergen Lock (2):
bsd-user: FreeBSD update
multiboot.S patch for old as(1) (was: Re: [Qemu-devel] Some OpenBSD/amd64 build fixes)

Juha Riihimäki (7):
target-arm: cleanup internal resource leaks
target-arm: fix incorrect temporary variable freeing
target-arm: fix neon vshrn/vrshrn ops
target-arm: add support for neon vld1.64/vst1.64 instructions
target-arm: allow modifying vfp fpexc en bit only
target-arm: fix neon vsri, vshl and vsli ops
target-arm: fix neon shift helper functions

Juha.Riihimaki@nokia.com (1):
target-arm: optimize thumb 32-bit multiply

Kevin Wolf (10):
qcow2: Fix grow_refcount_table error handling
raw/linux-aio: Also initialize POSIX AIO
posix-aio-compat: Split out posix_aio_process_queue
Split out bottom halves
Introduce contexts for asynchronous callbacks
block: Use new AsyncContext for bdrv_read/write emulation
posix-aio-compat: Honour AsyncContext
linux-aio: Honour AsyncContext
Revert "qcow2: Bring synchronous read/write back to life"
Add qemu_aio_process_queue()

Kusanagi Kouichi (1):
Add chardev option to disable signal.

Luiz Capitulino (9):
monitor: Convert do_memory_save() to QObject
monitor: Convert do_physical_memory_save() to QObject
monitor: Convert do_migrate() to QObject
monitor: Convert do_migrate_set_speed() to QObject
monitor: Convert do_migrate_cancel() to QObject
monitor: Convert do_pci_device_hot_remove() to QObject
monitor: Convert do_eject() to QObject
monitor: Convert do_getfd() to QObject
monitor: Convert do_closefd() to QObject

Mark McLoughlin (59):
net: remove unused includes of if_tun.h and if_tap.h
net: refactor tap initialization
net: import linux tap ioctl definitions
net: add a vnet_hdr=on|off parameter
net: make tap_receive() re-use tap_receive_iov() code
net: enable IFF_VNET_HDR on tap fds if available
net: add a client type code
net: add tap_has_vnet_hdr() and tap_using_vnet_hdr() APIs
net: add flags parameter to packet queue interface
net: add an API for 'raw' packets
net: add receive_raw parameter to qemu_new_vlan_client()
net: implement tap support for receive_raw()
virtio-net: add vnet_hdr support
net: add tap_set_offload()
virtio-net: enable tap offload if guest supports it
virtio-net: add tap_has_ufo flag to saved state
Merge commit '93db66850d99fd9885edeff6af5679be51e1c610' into upstream-merge
ne2k_isa: intermediate merge fixup
Merge commit 'a783cc3e551158854c15c6d121f29433a2810e85' into upstream-merge
ne2k_pci: intermediate merge fixup
Merge commit 'fbdaa002594c5115c3ff60a7fd5d3e7aa4f845cf' into upstream-merge
e1000: intermediate merge fixup
Merge commit '7622483395ef0e6c415af74bc9e7b0edf59cfe6c' into upstream-merge
pcnet: intermediate merge fixup
Merge commit '254111ecc80501a7d5c0e82f78bfa5ca8749ae20' into upstream-merge
rtl8139: intermediate merge fixup
Merge commit '97b156213e0e38b29da4480a32d4ec33d14d3012' into upstream-merge
virtio: intermediate merge fixup
Merge commit '508ef9367ee63413781af752934eae509c1bec63' into upstream-merge
eepro100: intermediate merge fixup
Merge commit '501321566f7dd767ff3479416c615ce5e6fd54c6' into upstream-merge
smc91c111: intermediate merge fixup
Merge commit '17d1ae3cec597ac4642d504648203e3caef0fe45' into upstream-merge
xilinx_ethlite: intermediate merge fixup
Merge commit '540f006a23085230c12c3cbcbd2bd774be0eb28e' into upstream-merge
stellaris_enet: intermediate merge fixup
Merge commit '4c91cd28105485ae04b5cc9e5150e346fddf0874' into upstream-merge
musicpal: intermediate merge fixup
Merge commit '9ad4531e1e00b996ba55de04d6ecfb4d02a9fd7c' into upstream-merge
Merge commit '844e78ef9c6102cc3e33e4aa00efc8abdf0d8dde' into upstream-merge
Merge commit '59c7b155aa6e1cbfe8a92e2322ea59ab31965c10' into upstream-merge
Merge commit '8febfa26846e75d38848255028dfe2d06e5ba941' into upstream-merge
Merge commit '38c75be3139a117b02350dbda9d48d47aa57fa3d' into upstream-merge
Merge commit '8e0f8e5bf8fd483dd28329055336cf895b74c89f' into upstream-merge
Merge commit 'bb6e636443d49f7444f49ab64dc7ec6aae1493a7' into upstream-merge
Merge commit '24e323631a662320851c498695cb4d4d82caa629' into upstream-merge
Merge commit 'c0b8e49c695ac11e3ef543db9ea2d8a1f62ccfce' into upstream-merge
Merge commit 'ca77d175912f7d0b2296e8e3a803a0763c00bc0b' into upstream-merge
Merge commit '70783b9c9be31e98421f17327a1127021abae672' into upstream-merge
Merge commit 'b04c4134d6de28c249277de19e523bfbe4aebbd6' into upstream-merge
Merge commit '2596774ad27bbe478829343702e896bea4c621cb' into upstream-merge
Merge commit '3a330134b3effa3494051763b38f12a24715d53a' into upstream-merge
Merge commit 'b1c28b464d5f21805d322b67f008e114a484146d' into upstream-merge
Merge commit 'f5436dd96aea2ec937964230831f241ebd3b658b' into upstream-merge
Merge commit '1d41b0c1ec66d38355a1e76c29dd2200433335f6' into upstream-merge
Merge commit '6c9f58ba3b79202655e6156eb1dab3a2d2e0b51e' into upstream-merge
Merge commit '9f09204064f7df627361e0dfc1f0e86f106de8e9' into upstream-merge
Merge commit 'f7cbc08ff0d712b0febcf84ce8458c3ae30db4fa' into upstream-merge
Merge branch 'upstream-merge'

Max Filippov (1):
linux-user: fix ppc target_stat64 st_blocks layout

Nolan (1):
Send a RARP packet after migration.

Paul Bolle (2):
linux-user: don't zero a buffer twice
usb-linux: return USB_RET_STALL on -EPIPE

Riku Voipio (1):
linux-user: Update ARM hwcaps

Sridhar Samudrala (1):
Enable UFO on virtio-net and tap devices

Stefan Weil (2):
eepro100: Restructure code
Makefile: Change make to be quiet again when doing nothing

Thomas Monjalon (3):
target-ppc: better support of e300 CPU core
target-ppc: add declarations of microcontrollers based on e300
target-ppc: simpler definitions for microcontrollers based on e300

Ulrich Hecht (3):
implementations of dup3 and fallocate that are good enough to fool LTP
linux-user: getpriority errno fix
linux-user: KD/VT/FB ioctls

Makefile | 4 +-
Makefile.target | 4 +-
aio.c | 30 +
async.c | 216 ++++
block.c | 22 +-
block/curl.c | 8 +-
block/qcow2-cluster.c | 6 +-
block/qcow2-refcount.c | 1 -
block/qcow2.c | 51 +-
block/qcow2.h | 3 -
block/raw-posix.c | 4 +
bsd-user/elfload.c | 10 +-
bsd-user/freebsd/strace.list | 1 +
bsd-user/i386/syscall.h | 14 +
bsd-user/main.c | 116 ++-
bsd-user/qemu.h | 6 +-
bsd-user/syscall.c | 296 ++++++-
bsd-user/syscall_defs.h | 6 +
bsd-user/x86_64/syscall.h | 18 +
configure | 56 ++
cpu-exec.c | 27 +-
gdbstub.c | 2 +-
gen-icount.h | 9 -
hw/acpi.c | 3 -
hw/baum.c | 2 +-
hw/cs4231.c | 52 +-
hw/device-hotplug.c | 16 -
hw/dp8393x.c | 5 +-
hw/e1000.c | 232 +++---
hw/eccmemctl.c | 16 +-
hw/eepro100.c | 320 +++----
hw/eeprom93xx.c | 102 +-
hw/escc.c | 104 +--
hw/esp.c | 24 +-
hw/etraxfs_eth.c | 5 +-
hw/fdc.c | 39 +-
hw/hw.h | 196 +++--
hw/ide/cmd646.c | 2 +-
hw/ide/core.c | 153 ++--
hw/ide/internal.h | 18 +-
hw/ide/isa.c | 31 +-
hw/ide/macio.c | 42 +-
hw/ide/microdrive.c | 63 +-
hw/ide/mmio.c | 53 +-
hw/ide/pci.c | 95 +--
hw/ide/pci.h | 4 +-
hw/ide/piix.c | 2 +-
hw/iommu.c | 11 +-
hw/lance.c | 147 +++
hw/lsi53c895a.c | 246 ++---
hw/m48t59.c | 23 +-
hw/mc146818rtc.c | 220 +----
hw/mcf_fec.c | 5 +-
hw/mipsnet.c | 5 +-
hw/musicpal.c | 17 +-
hw/ne2000-isa.c | 21 +-
hw/ne2000.c | 174 ++--
hw/ne2000.h | 5 +-
hw/parallel.c | 23 +-
hw/pc.c | 9 +-
hw/pc.h | 2 -
hw/pci-hotplug.c | 80 +-
hw/pci.c | 5 +-
hw/pci_ids.h | 1 +
hw/pcnet.c | 285 ++----
hw/pcnet.h | 38 +
hw/qdev-properties.c | 139 +++-
hw/qdev.c | 29 +-
hw/qdev.h | 21 +-
hw/rtl8139.c | 400 +++-----
hw/sbi.c | 46 +-
hw/serial.c | 37 +-
hw/slavio_intctl.c | 12 +-
hw/slavio_misc.c | 12 +-
hw/slavio_timer.c | 11 +-
hw/smc91c111.c | 31 +-
hw/sparc32_dma.c | 11 +-
hw/stellaris.c | 2 +-
hw/stellaris_enet.c | 43 +-
hw/sun4c_intctl.c | 12 +-
hw/sun4m.c | 2 +-
hw/sun4u.c | 3 -
hw/syborg.c | 4 +-
hw/syborg_virtio.c | 16 +-
hw/tcx.c | 1 -
hw/usb-net.c | 5 +-
hw/usb-serial.c | 2 +-
hw/usb-uhci.c | 85 +-
hw/vga-isa-mm.c | 2 +-
hw/vga-isa.c | 2 +-
hw/vga-pci.c | 34 +-
hw/vga.c | 132 +--
hw/vga_int.h | 7 +-
hw/virtio-net.c | 199 ++--
hw/virtio-pci.c | 33 +-
hw/virtio.h | 5 +-
hw/vmware_vga.c | 168 ++--
hw/wdt_i6300esb.c | 81 +-
hw/wdt_ib700.c | 53 +-
hw/xen_nic.c | 5 +-
hw/xilinx.h | 2 +-
hw/xilinx_ethlite.c | 20 +-
linux-aio.c | 87 ++-
linux-user/elfload.c | 9 +-
linux-user/ioctls.h | 14 +
linux-user/linuxload.c | 1 -
linux-user/syscall.c | 22 +-
linux-user/syscall_defs.h | 18 +-
linux-user/syscall_types.h | 51 +
migration.c | 6 +-
migration.h | 6 +-
monitor.c | 13 +-
net-queue.c | 37 +-
net-queue.h | 9 +-
net.c | 421 +++++----
net.h | 55 +-
pc-bios/optionrom/multiboot.S | 3 +
posix-aio-compat.c | 80 +-
qemu-aio.h | 13 +
qemu-char.c | 19 +-
qemu-char.h | 2 +-
qemu-common.h | 11 +
qemu-config.c | 3 +
qemu-monitor.hx | 27 +-
qemu-options.hx | 10 +-
qemu-tool.c | 13 +
savevm.c | 113 ++-
sysemu.h | 7 +-
tap-linux.h | 51 +
tap-win32.c | 5 +-
target-arm/exec.h | 2 -
target-arm/helper.c | 10 +-
target-arm/helpers.h | 7 -
target-arm/neon_helper.c | 26 +-
target-arm/op_helper.c | 66 --
target-arm/translate.c | 2161 +++++++++++++++++++++--------------------
target-i386/helper.h | 1 +
target-i386/machine.c | 12 +-
target-i386/op_helper.c | 14 +-
target-i386/translate.c | 37 +-
target-ppc/cpu.h | 8 +-
target-ppc/translate_init.c | 138 ++--
usb-linux.c | 4 +-
vl.c | 110 ---
144 files changed, 4963 insertions(+), 4212 deletions(-)
create mode 100644 async.c
create mode 100644 hw/lance.c
create mode 100644 hw/pcnet.h
create mode 100644 tap-linux.h