No description
Find a file
Markus Armbruster ed238ba2a0 qdev-monitor: Fix check for full bus
Property bus has always been too screwed up to be really usable for
values other than plain bus IDs.  This just fixes a bug that crept in
in commit 1395af6 "qdev: add a maximum device allowed field for the
bus."

It doesn't always fail when it should:

    $ qemu-system-x86_64 -nodefaults -device virtio-serial-pci -device virtio-rng-device,bus=pci.0/virtio-serial-pci/virtio-bus

Happily plugs the virtio-rng-device into the virtio-bus provided by
virtio-serial-pci, even though its only slot is already occupied by a
virtio-serial-device.

And sometimes fails when it shouldn't:

    $ qemu-system-x86_64 -nodefaults -device virtio-serial-pci -device virtserialport,bus=virtio-bus/virtio-serial-device

Yes, the virtio-bus is full, but the virtio-serial-bus provided by
virtio-serial-device isn't, and that's the one we're trying to use.

Root cause: we check "bus full" when we resolve the first element of
the path.  That's the correct one only when it's also the last one.

Fix by moving the "bus full" check to right before we return a bus.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2015-06-22 18:20:39 +02:00
audio ossaudio: use trace events instead of debug config flag 2015-06-15 12:42:48 +02:00
backends qom: Don't pass string table to object_get_enum() function 2015-06-19 18:42:48 +02:00
block qobject: Use 'bool' for qbool 2015-06-22 17:40:00 +02:00
bsd-user target-i386: use memory API to implement SMRAM 2015-06-05 17:36:39 +02:00
default-configs virtio-gpu: pci support bits and virtio-vga. 2015-06-16 10:35:43 +01:00
disas target-mips: add MTHC0 and MFHC0 instructions 2015-06-12 09:05:31 +01:00
docs qapi: Drop bogus command from docs 2015-06-18 14:12:33 +02:00
dtc@65cc4d2748 dtc: Update dtc / libfdt submodule to version 1.4.0 2015-06-03 23:56:49 +02:00
fpu target-s390x: define default NaN values 2015-06-05 01:37:58 +02:00
fsdev virtfs-proxy-helper: fail gracefully if socket path is too long 2015-06-16 20:32:29 +05:30
gdb-xml gdb-xml: Include XML for s390 vector registers 2015-05-27 17:52:03 +02:00
hw qobject: Use 'bool' inside qdict 2015-06-22 17:40:00 +02:00
include disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
libcacard libcacard: do not use full paths for include files in the same dir 2015-04-30 16:05:48 +03:00
libdecnumber
linux-headers virtio, pci fixes, enhancements 2015-06-19 11:30:57 +01:00
linux-user linux-user: ioctl() command type is int 2015-06-16 09:37:17 +03:00
migration -----BEGIN PGP SIGNATURE----- 2015-06-12 15:39:05 +01:00
net virtio, pci fixes, enhancements 2015-06-19 11:30:57 +01:00
pc-bios Update OpenBIOS images 2015-06-17 20:02:15 +01:00
pixman@87eea99e44
po
qapi qobject: Use 'bool' for qbool 2015-06-22 17:40:00 +02:00
qga qemu-ga: Introduce Windows MSI script 2015-06-17 16:03:47 +02:00
qobject qobject: Use 'bool' inside qdict 2015-06-22 17:40:00 +02:00
qom qobject: Use 'bool' for qbool 2015-06-22 17:40:00 +02:00
roms Update OpenBIOS images 2015-06-17 20:02:15 +01:00
scripts qom: Make enum string tables const-correct 2015-06-19 18:42:18 +02:00
slirp
stubs iohandler: Change return type of qemu_set_fd_handler to "void" 2015-06-12 13:26:21 +01:00
target-alpha disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-arm disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-cris disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-i386 disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-lm32 disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-m68k disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-microblaze disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-mips disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-moxie
target-openrisc disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-ppc disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-s390x disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-sh4 disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-sparc disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-tricore disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-unicore32 disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
target-xtensa disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
tcg tcg/optimize: rename tcg_constant_folding 2015-06-09 07:00:56 -07:00
tests qobject: Use 'bool' inside qdict 2015-06-22 17:40:00 +02:00
trace
ui ui/cocoa.m: Add machine menu items to change and eject removable drive media 2015-06-19 11:22:31 +01:00
util qobject: Use 'bool' for qbool 2015-06-22 17:40:00 +02:00
.exrc
.gitignore gitignore: Ignore more .pod files. 2015-04-04 09:45:59 +03:00
.gitmodules
.mailmap
.travis.yml
accel.c
aio-posix.c AioContext: acquire/release AioContext during aio_poll 2015-04-28 15:36:08 +02:00
aio-win32.c AioContext: acquire/release AioContext during aio_poll 2015-04-28 15:36:08 +02:00
arch_init.c migration: reduce include files 2015-06-12 06:42:34 +02:00
async.c Revert "iothread: release iothread around aio_poll" 2015-06-12 13:58:33 +01:00
balloon.c balloon: improve error msg when adding second device 2015-04-24 14:18:05 -04:00
block.c Block layer core and image format patches 2015-06-15 10:43:06 +01:00
blockdev-nbd.c Change qemu_set_fd_handler2(..., NULL, ...) to qemu_set_fd_handler 2015-06-12 13:26:21 +01:00
blockdev.c s390x: Switch to s390-ccw machine as default 2015-06-17 12:40:52 +02:00
blockjob.c blockjob: Allow nested pause 2015-04-28 15:36:09 +02:00
bootdevice.c misc: fix typos in copyright declaration 2015-03-26 14:21:43 +01:00
bt-host.c
bt-vhci.c
Changelog
CODING_STYLE
configure qemu-ga: Building Windows MSI installation with configure/Makefile 2015-06-17 16:03:47 +02:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c
cpus.c migration: Use normal VMStateDescriptions for Subsections 2015-06-12 06:53:57 +02:00
cputlb.c memory: replace cpu_physical_memory_reset_dirty() with test-and-clear 2015-06-05 17:10:00 +02:00
device-hotplug.c
device_tree.c device-tree: Make a common-obj 2015-06-03 14:21:24 +03:00
disas.c disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
dma-helpers.c range: remove useless inclusions 2015-04-30 16:05:48 +03:00
dump.c
exec.c exec: clamp accesses against the MemoryRegionSection 2015-06-19 12:27:14 +02:00
gdbstub.c semihosting: create SemihostingConfig structure and semihost.h 2015-06-19 14:17:45 +01:00
HACKING
hmp-commands.hx qmp/hmp: add rocker device support 2015-06-12 13:42:17 +01:00
hmp.c qobject: Use 'bool' inside qdict 2015-06-22 17:40:00 +02:00
hmp.h qmp/hmp: add rocker device support 2015-06-12 13:42:17 +01:00
iohandler.c iohandler: Change return type of qemu_set_fd_handler to "void" 2015-06-12 13:26:21 +01:00
ioport.c - miscellaneous cleanups for TCG (Emilio) and NBD (Bogdan) 2015-04-30 12:04:11 +01:00
iothread.c qom: Add helper function for getting user objects root 2015-06-19 18:40:00 +02:00
kvm-all.c kvm: remove special handling of DIRTY_MEMORY_MIGRATION in the dirty log mask 2015-06-05 17:09:59 +02:00
kvm-stub.c
LICENSE
main-loop.c Change qemu_set_fd_handler2(..., NULL, ...) to qemu_set_fd_handler 2015-06-12 13:26:21 +01:00
MAINTAINERS virtio, pci fixes, enhancements 2015-06-19 11:30:57 +01:00
Makefile qemu-ga: Building Windows MSI installation with configure/Makefile 2015-06-17 16:03:47 +02:00
Makefile.objs device-tree: Make a common-obj 2015-06-03 14:21:24 +03:00
Makefile.target migration: move savevm.c inside migration/ 2015-06-12 06:42:30 +02:00
memory.c memory: use mr->ram_addr in "is this RAM?" assertions 2015-06-05 17:10:00 +02:00
memory_mapping.c
module-common.c
monitor.c disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
nbd.c qemu-nbd: only send a limited number of errno codes on the wire 2015-05-08 14:45:11 +02:00
numa.c qom: Don't pass string table to object_get_enum() function 2015-06-19 18:42:48 +02:00
os-posix.c rcu: do not create thread in pthread_atfork callback 2015-04-01 10:06:38 +02:00
os-win32.c
page_cache.c
qapi-schema.json s390x/kvm/watchdog 2015-06-15 13:24:51 +01:00
qdev-monitor.c qdev-monitor: Fix check for full bus 2015-06-22 18:20:39 +02:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qemu-char: remove unused list node from FDCharDriver 2015-04-30 16:05:49 +03:00
qemu-coroutine-io.c
qemu-coroutine-lock.c coroutine: remove unnecessary parentheses in qemu_co_queue_empty 2015-04-30 16:05:49 +03:00
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-doc.texi
qemu-img-cmds.hx
qemu-img.c util: move read_password method out of qemu-img into osdep/oslib 2015-05-22 17:08:01 +02:00
qemu-img.texi
qemu-io-cmds.c qemu-io: Use getopt() correctly 2015-05-22 17:08:01 +02:00
qemu-io.c qemu-io: prompt for encryption keys when required 2015-05-22 17:08:01 +02:00
qemu-log.c
qemu-nbd.c qemu-nbd: Switch to qemu_set_fd_handler 2015-06-05 17:09:58 +02:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx QOM infrastructure fixes and device conversions 2015-06-22 12:50:30 +01:00
qemu-seccomp.c
qemu-tech.texi
qemu-timer.c qemu-timer: Call clock reset notifiers on forward jumps 2015-06-19 12:27:14 +02:00
qemu.nsi
qemu.sasl
qjson.c QJSON: Use OBJECT_CHECK 2015-05-11 08:59:07 -04:00
qmp-commands.hx -----BEGIN PGP SIGNATURE----- 2015-06-12 18:04:14 +01:00
qmp.c qom: Add helper function for getting user objects root 2015-06-19 18:40:00 +02:00
qtest.c qtest: pre-buffer hex nibs 2015-05-22 15:58:22 -04:00
README
rules.mak rules.mak: Force CFLAGS for all objects in DSO 2015-05-08 14:45:11 +02:00
softmmu_template.h softmmu: Add probe_write() 2015-06-11 10:13:28 +01:00
spice-qemu-char.c spice: fix spice_chr_add_watch() pre-condition 2015-05-29 09:56:01 +02:00
tcg-runtime.c
tci.c tcg: Mask TCGMemOp appropriately for indexing 2015-06-09 06:35:29 -07:00
thread-pool.c thread-pool: clean up thread_pool_completion_bh() 2015-04-28 15:36:09 +02:00
thunk.c linux-user: Allocate thunk size dynamically 2015-06-15 11:36:58 +03:00
tpm.c QemuOpts: Convert qemu_opts_foreach() to Error 2015-06-09 07:37:37 +02:00
trace-events ossaudio: use trace events instead of debug config flag 2015-06-15 12:42:48 +02:00
translate-all.c translate-all: fix watchpoints if retranslation not possible 2015-06-17 12:40:52 +02:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2015-06-05 17:09:59 +02:00
user-exec.c exec: move functions to translate-all.h 2015-06-05 17:09:59 +02:00
VERSION Open 2.4 development tree 2015-04-25 22:05:07 +01:00
version.rc
vl.c QOM infrastructure fixes and device conversions 2015-06-22 12:50:30 +01:00
xen-common-stub.c
xen-common.c
xen-hvm-stub.c
xen-hvm.c memory: prepare for multiple bits in the dirty log mask 2015-06-05 17:09:59 +02:00
xen-mapcache.c

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

- QEMU team