Go to file
Gerd Hoffmann c1ecb40a61 usb core: add migration support
Yes, seriously.  There is no migration support at all for usb devices.
They loose state, especially the device address, and stop responding
because of that.  Oops.

Luckily there is so much broken usb hardware out there that the guest
usually just kicks the device hard (via port reset and
reinitialization), then continues without a hitch.  So we got away with
that in a surprising high number of cases.

The arrival of remote wakeup (which enables autosuspend support) changes
that picture though.  The usb devices also forget that it they are
supposed to wakeup, so they don't do that.  The host also doesn't notice
the device stopped working in case it suspended the device and thus
expects it waking up instead of polling it.  Result is that your mouse
is dead.

Lets start fixing that.  Add a vmstate struct for USBDevice.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2011-01-24 17:21:34 +01:00
audio
block
bsd-user
darwin-user
default-configs
docs
fpu
fsdev
gdb-xml
hw usb core: add migration support 2011-01-24 17:21:34 +01:00
linux-user
net
pc-bios
QMP
roms
scripts
slirp
sysconfigs/target
target-alpha
target-arm
target-cris
target-i386
target-m68k
target-microblaze
target-mips
target-ppc
target-s390x
target-sh4
target-sparc
tcg
tests
ui
.gitignore
.gitmodules
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c
alpha-dis.c
alpha.ld
arch_init.c
arch_init.h
arm-dis.c
arm-semi.c
arm.ld
async.c
balloon.c
balloon.h
block_int.h
block-migration.c
block-migration.h
block.c
block.h
blockdev.c
blockdev.h
bswap.h
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c
buffered_file.h
cache-utils.c
cache-utils.h
Changelog
check-qdict.c
check-qfloat.c
check-qint.c
check-qjson.c
check-qlist.c
check-qstring.c
cmd.c
cmd.h
CODING_STYLE
compatfd.c
compatfd.h
config.h
configure
console.c
console.h
COPYING
COPYING.LIB
cpu-all.h
cpu-common.h
cpu-defs.h
cpu-exec.c
cpus.c
cpus.h
cris-dis.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c
cutils.c
def-helper.h
device_tree.c
device_tree.h
dis-asm.h
disas.c
disas.h
dma-helpers.c
dma.h
dyngen-exec.h
elf.h
envlist.c
envlist.h
exec-all.h
exec.c
gdbstub.c
gdbstub.h
gen-icount.h
HACKING
hmp-commands.hx
host-utils.c
host-utils.h
hpet.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c
ioport-user.c
ioport.c
ioport.h
iorange.h
iov.c
iov.h
json-lexer.c
json-lexer.h
json-parser.c
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c
kvm-stub.c
kvm.h
libfdt_env.h
LICENSE
linux-aio.c
m68k-dis.c
m68k-semi.c
m68k.ld
MAINTAINERS
Makefile
Makefile.dis
Makefile.hw
Makefile.objs
Makefile.target
Makefile.user
microblaze-dis.c
migration-exec.c
migration-fd.c
migration-tcp.c
migration-unix.c
migration.c
migration.h
mips-dis.c
mips.ld
module.c
module.h
monitor.c
monitor.h
nbd.c
nbd.h
net-checksum.c
net.c
net.h
notify.c
notify.h
os-posix.c
os-win32.c
osdep.c
osdep.h
oslib-posix.c
oslib-win32.c
path.c
pci-ids.txt
pflib.c
pflib.h
poison.h
posix-aio-compat.c
ppc64.ld
ppc-dis.c
ppc.ld
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu_socket.h
qemu-aio.h
qemu-barrier.h
qemu-char.c
qemu-char.h
qemu-common.h
qemu-config.c
qemu-config.h
qemu-doc.texi
qemu-error.c
qemu-error.h
qemu-img-cmds.hx
qemu-img.c
qemu-img.texi
qemu-io.c
qemu-lock.h
qemu-log.h
qemu-malloc.c
qemu-nbd.c
qemu-nbd.texi
qemu-objects.h
qemu-option.c
qemu-option.h
qemu-options.h
qemu-options.hx
qemu-os-posix.h
qemu-os-win32.h
qemu-queue.h
qemu-sockets.c
qemu-tech.texi
qemu-thread.c
qemu-thread.h
qemu-timer-common.c
qemu-timer.c
qemu-timer.h
qemu-tool.c
qemu-x509.h
qemu.sasl
qerror.c
qerror.h
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c
qlist.h
qmp-commands.hx
qobject.h
qstring.c
qstring.h
range.h
readline.c
readline.h
README
rules.mak
rwhandler.c
rwhandler.h
s390-dis.c
s390.ld
savevm.c
sh4-dis.c
simpletrace.c
simpletrace.h
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h
softmmu-semi.h
sparc64.ld
sparc-dis.c
sparc.ld
sysemu.h
targphys.h
tcg-runtime.c
thunk.c
thunk.h
TODO
trace-events
translate-all.c
uboot_image.h
usb-bsd.c
usb-linux.c
usb-stub.c
VERSION
version.rc
vgafont.h
vl.c
x86_64.ld

Read the documentation in qemu-doc.html.

Fabrice Bellard.