Go to file
Hans de Goede a1c3e4b839 ehci: Schedule async-bh when IAAD bit gets set
After the "ehci: Print a warning when a queue unexpectedly contains packets
on cancel" commit. Under certain reproducable conditions I was getting the
following message: "EHCI: Warning queue not empty on queue reset".

After aprox. 8 hours of debugging I've finally found the cause. The Linux EHCI
driver has an IAAD watchdog, to work around certain EHCI hardware sometimes
not acknowledging the doorbell at all. This watchdog has a timeout of 10 ms,
which is less then the time between 2 runs through the async schedule when
async_stepdown is at its highest value.

Thus the watchdog can trigger, after which Linux clears the IAAD bit and
re-uses the QH. IOW we were not properly detecting the unlink of the qh, due
to us missing (ignoring for more then 10 ms) the IAAD command, which triggered
the warning.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2012-08-31 11:58:03 +02:00
audio audio/winwave: previous audio buffer should be flushed 2012-08-28 19:11:28 +04:00
block iscsi: Set number of blocks to 0 for blank CDROM devices 2012-08-28 14:50:08 +02:00
bsd-user
default-configs arm: Move some ARM devices into libhw 2012-08-13 16:13:02 +01:00
docs docs: Fix spelling (propery -> property) 2012-08-15 15:18:54 +01:00
fpu
fsdev
gdb-xml
hw ehci: Schedule async-bh when IAAD bit gets set 2012-08-31 11:58:03 +02:00
include/qemu Merge remote-tracking branch 'quintela/migration-next-20120808' into staging 2012-08-13 16:02:11 -05:00
libcacard
linux-headers linux-headers: update to 3.6-rc3 2012-08-29 10:51:28 -05:00
linux-user linux-user: Clarify "Unable to reserve guest address space" error 2012-08-27 10:18:01 +03:00
net
pc-bios Update OpenBIOS PPC image 2012-08-28 20:38:39 +02:00
qapi qapi: Fix memory leak 2012-08-20 11:05:08 -03:00
qga
QMP qmp: add SUSPEND_DISK event 2012-08-13 16:10:18 -03:00
qom qom: object_delete should unparent the object first 2012-08-23 20:19:59 -05:00
roms Update OpenBIOS PPC image 2012-08-28 20:38:39 +02:00
scripts Merge remote-tracking branch 'stefanha/trivial-patches' into staging 2012-08-15 13:25:54 -05:00
slirp
sysconfigs/target
target-alpha
target-arm arm-semi: don't leak 1KB user string lock buffer upon TARGET_SYS_OPEN 2012-08-22 10:47:14 -05:00
target-cris
target-i386 w32: Fix broken build 2012-08-30 16:36:21 -05:00
target-lm32
target-m68k
target-microblaze
target-mips target-mips: allow microMIPS SWP and SDP to have RD equal to BASE 2012-08-27 22:18:02 +02:00
target-openrisc
target-ppc target-ppc: fix altivec instructions 2012-08-28 18:49:22 +02:00
target-s390x s390: provide interface for service interrupt/introduce interrupt.c 2012-08-15 17:47:09 +02:00
target-sh4
target-sparc
target-unicore32
target-xtensa
tcg tcg/mips: fix broken CONFIG_TCG_PASS_AREG0 code 2012-08-28 20:38:39 +02:00
tests check-qjson: add test for large JSON objects 2012-08-16 13:41:15 -05:00
trace trace/simple: Replace asprintf by g_strdup_printf 2012-08-14 13:19:57 +01:00
ui net: inet_connect(), inet_connect_opts(): add in_progress argument 2012-08-13 13:20:34 -03:00
.gitignore
.gitmodules
.mailmap
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c
alpha-dis.c
alpha.ld
arch_init.c qapi: add 'query-target' command to return target arch 2012-08-22 10:47:17 -05:00
arch_init.h win32: provide separate macros for weak decls and definitions 2012-08-15 13:26:03 -05:00
arm-dis.c
arm.ld
async.c
balloon.c
balloon.h
bitmap.c
bitmap.h
bitops.c
bitops.h
block_int.h block: block_int: include qerror.h 2012-08-13 13:20:50 -03:00
block-migration.c
block-migration.h
block.c block: Flush parent to OS with cache=unsafe 2012-08-15 15:14:43 +02:00
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
cmd.c
cmd.h
CODING_STYLE
compatfd.c
compatfd.h
compiler.h win32: provide separate macros for weak decls and definitions 2012-08-15 13:26:03 -05:00
config.h
configure qapi: add 'query-target' command to return target arch 2012-08-22 10:47:17 -05:00
console.c
console.h
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-all.h x86: switch to AREG0 free mode 2012-08-14 19:01:26 +00:00
cpu-common.h
cpu-defs.h
cpu-exec.c Revert "i8259: add -no-spurious-interrupt-hack option" 2012-08-27 18:33:12 +04:00
cpus.c
cpus.h
cputlb.c cputlb.c: Fix out of date comment 2012-08-15 15:18:54 +01:00
cputlb.h
cris-dis.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c
cutils.c block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
def-helper.h
device_tree.c
device_tree.h
dis-asm.h
disas.c
disas.h
dma-helpers.c dma: Fix stupid typo/thinko 2012-08-16 13:41:16 -05:00
dma.h
dump-stub.c
dump.c
dump.h
dyngen-exec.h
elf.h
envlist.c
envlist.h
error.c error, qerror: drop QDict member 2012-08-13 14:17:53 -03:00
error.h error, qerror: pass desc string to error calls 2012-08-13 14:17:53 -03:00
event_notifier.c
event_notifier.h
exec-all.h
exec-memory.h
exec-obsolete.h
exec.c memory: add -machine dump-guest-core=on|off 2012-08-16 13:41:15 -05:00
gdbstub.c
gdbstub.h
gen-icount.h
HACKING
hmp-commands.hx
hmp.c migration: move total_time from ram stats to migration info 2012-08-21 15:06:24 -03:00
hmp.h Merge remote-tracking branch 'qmp/queue/qmp' into staging 2012-08-13 16:12:35 -05:00
host-utils.c
host-utils.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c
int128.h
iohandler.c eventfd: making it thread safe 2012-08-21 15:16:29 -05:00
ioport.c
ioport.h
iorange.h
iov.c iov_send_recv(): Handle zero bytes case even if OS does not 2012-08-15 15:21:33 +01:00
iov.h
json-lexer.c
json-lexer.h
json-parser.c json-parser: don't replicate tokens at each level of recursion 2012-08-16 13:41:15 -05:00
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c
kvm-stub.c
kvm.h
libfdt_env.h
LICENSE
linux-aio.c
lm32-dis.c
m68k-dis.c
m68k.ld
main-loop.c
main-loop.h
MAINTAINERS MAINTAINERS: Update email address for Stefan Hajnoczi 2012-08-14 07:34:01 -05:00
Makefile Merge remote-tracking branch 'stefanha/trivial-patches' into staging 2012-08-15 13:25:54 -05:00
Makefile.dis
Makefile.hw
Makefile.objs Adding support for libseccomp in configure and Makefile (v8) 2012-08-16 13:41:16 -05:00
Makefile.target
Makefile.user
memory_mapping-stub.c
memory_mapping.c
memory_mapping.h
memory.c memory: Fix copy&paste mistake in memory_region_iorange_write 2012-08-29 08:25:37 -05:00
memory.h
microblaze-dis.c
migration-exec.c
migration-fd.c
migration-tcp.c migration: don't rely on any QERR_SOCKET_* 2012-08-13 13:20:39 -03:00
migration-unix.c
migration.c migration: move total_time from ram stats to migration info 2012-08-21 15:06:24 -03:00
migration.h
mips-dis.c
mips.ld
module.c
module.h
monitor.c monitor: don't try to initialize json parser when monitor is HMP 2012-08-23 20:19:59 -05:00
monitor.h block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
nbd.c net: inet_connect(), inet_connect_opts(): add in_progress argument 2012-08-13 13:20:34 -03:00
nbd.h
net.c
net.h
notify.c
notify.h
os-posix.c
os-win32.c
osdep.c osdep: Fix compilation failure on BSD systems 2012-08-16 13:41:16 -05:00
osdep.h memory: add -machine dump-guest-core=on|off 2012-08-16 13:41:15 -05:00
oslib-posix.c
oslib-win32.c
page_cache.c
path.c
pci-ids.txt
pflib.c
pflib.h
poison.h
posix-aio-compat.c
ppc64.ld
ppc-dis.c
ppc.ld
qapi-schema-guest.json
qapi-schema-test.json
qapi-schema.json Merge remote-tracking branch 'qmp/queue/qmp' into staging 2012-08-22 13:33:15 -05:00
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu_socket.h net: inet_connect(), inet_connect_opts(): add in_progress argument 2012-08-13 13:20:34 -03:00
qemu-aio.h
qemu-barrier.h
qemu-bridge-helper.c
qemu-char.c qemu-char: (Re-)connect for tcp_chr_write() unconnected writing 2012-08-16 13:41:38 -05:00
qemu-char.h
qemu-common.h block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
qemu-config.c Command line support for seccomp with -sandbox (v8) 2012-08-16 13:41:16 -05:00
qemu-config.h Command line support for seccomp with -sandbox (v8) 2012-08-16 13:41:16 -05:00
qemu-coroutine-int.h
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-coroutine.h
qemu-doc.texi
qemu-error.c
qemu-error.h
qemu-file.h
qemu-ga.c qemu-ga: Fix null pointer passed to unlink in failure branch 2012-08-29 08:25:55 -05:00
qemu-img-cmds.hx
qemu-img.c
qemu-img.texi Documentation: Warn against qemu-img on active image 2012-08-17 21:29:15 +02:00
qemu-io.c
qemu-lock.h
qemu-log.c
qemu-log.h
qemu-nbd.c
qemu-nbd.texi
qemu-objects.h
qemu-option-internal.h
qemu-option.c
qemu-option.h
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Revert "qemu-options.hx: mention retrace= VGA option" 2012-08-27 18:33:21 +04:00
qemu-os-posix.h
qemu-os-win32.h
qemu-progress.c
qemu-queue.h
qemu-seccomp.c Adding qemu-seccomp.[ch] (v8) 2012-08-16 13:41:16 -05:00
qemu-seccomp.h Adding qemu-seccomp.[ch] (v8) 2012-08-16 13:41:16 -05:00
qemu-sockets.c migration: don't rely on any QERR_SOCKET_* 2012-08-13 13:20:39 -03:00
qemu-tech.texi
qemu-thread-posix.c
qemu-thread-posix.h
qemu-thread-win32.c
qemu-thread-win32.h
qemu-thread.h
qemu-timer-common.c
qemu-timer.c
qemu-timer.h
qemu-tls.h
qemu-tool.c block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
qemu-user.c block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
qemu-x509.h
qemu-xattr.h
qemu.sasl
qerror.c error, qerror: drop QDict member 2012-08-13 14:17:53 -03:00
qerror.h error, qerror: drop QDict member 2012-08-13 14:17:53 -03:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c qlist: add qlist_size() 2012-08-16 13:41:15 -05:00
qlist.h qlist: add qlist_size() 2012-08-16 13:41:15 -05:00
qmp-commands.hx Merge remote-tracking branch 'qmp/queue/qmp' into staging 2012-08-22 13:33:15 -05:00
qmp.c win32: provide separate macros for weak decls and definitions 2012-08-15 13:26:03 -05:00
qobject.h
qstring.c
qstring.h
qtest.c
qtest.h
range.h
readline.c
readline.h
README
rules.mak Support using a different compiler for Objective-C files 2012-08-16 13:41:15 -05:00
s390-dis.c
s390.ld
savevm.c Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging 2012-08-15 14:59:21 -05:00
sh4-dis.c
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h
softmmu-semi.h softmmu-semi: fix lock_user* functions not to deref NULL upon OOM 2012-08-22 10:47:14 -05:00
sparc64.ld
sparc-dis.c
sparc.ld
spice-qemu-char.c
sysemu.h Revert "i8259: add -no-spurious-interrupt-hack option" 2012-08-27 18:33:12 +04:00
targphys.h
tcg-runtime.c
tci-dis.c
tci.c
thunk.c
thunk.h
TODO
trace-events pseries: Add PCI MSI/MSI-X support 2012-08-15 19:43:16 +02:00
translate-all.c
uboot_image.h
user-exec.c
VERSION Update version for 1.2.0-rc2 2012-08-30 07:45:28 -05:00
version.rc
vgafont.h
vl.c Revert "vl: fix -hdachs/-hda argument order parsing issues" 2012-08-27 18:33:22 +04:00
vmstate.h
x86_64.ld
xen-all.c xen-all.c: fix multiply issue for int and uint types 2012-08-22 10:17:43 +00:00
xen-mapcache.c Fix invalidate if memory requested was not bucket aligned 2012-08-22 10:17:04 +00:00
xen-mapcache.h
xen-stub.c

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team