Go to file
Markus Armbruster 33fe968330 Revert "qdev: Use qdev_get_device_class() for -device <type>,help"
This reverts commit 31bed5509d.

The reverted commit changed qdev_device_help() to reject abstract
devices and devices that have cannot_instantiate_with_device_add_yet
set, to fix crash bugs like -device x86_64-cpu,help.

Rejecting abstract devices makes sense: they're purely internal, and
the implementation of the help feature can't cope with them.

Rejecting non-pluggable devices makes less sense: even though you
can't use them with -device, the help may still be useful elsewhere,
for instance with -global.  This is a regression: -device FOO,help
used to help even for FOO that aren't pluggable.

The previous two commits fixed the crash bug at a lower layer, so
reverting this one is now safe.  Fixes the -device FOO,help
regression, except for the broken devices marked
cannot_even_create_with_object_new_yet.  For those, the error message
is improved.

Example of a device where the regression is fixed:

    $ qemu-system-x86_64 -device PIIX4_PM,help
    PIIX4_PM.command_serr_enable=bool (on/off)
    PIIX4_PM.multifunction=bool (on/off)
    PIIX4_PM.rombar=uint32
    PIIX4_PM.romfile=str
    PIIX4_PM.addr=int32 (Slot and optional function number, example: 06.0 or 06)
    PIIX4_PM.memory-hotplug-support=bool
    PIIX4_PM.acpi-pci-hotplug-with-bridge-support=bool
    PIIX4_PM.s4_val=uint8
    PIIX4_PM.disable_s4=uint8
    PIIX4_PM.disable_s3=uint8
    PIIX4_PM.smb_io_base=uint32

Example of a device where it isn't fixed:

    $ qemu-system-x86_64 -device host-x86_64-cpu,help
    Can't list properties of device 'host-x86_64-cpu'

Both failed with "Parameter 'driver' expects pluggable device type"
before.

Cc: qemu-stable@nongnu.org
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <1443689999-12182-11-git-send-email-armbru@redhat.com>
2015-10-09 15:25:57 +02:00
audio ossaudio: fix memory leak 2015-07-08 13:11:01 +02:00
backends qemu-char: Use g_new() & friends where that makes obvious sense 2015-09-16 17:33:33 +02:00
block block/ssh: remove dead code 2015-10-08 19:46:01 +03:00
bsd-user s/cpu_get_real_ticks/cpu_get_host_ticks/ 2015-10-08 19:46:01 +03:00
crypto crypto: introduce new module for handling TLS sessions 2015-09-15 15:07:43 +01:00
default-configs icc_bus: drop the unused files 2015-10-02 16:22:02 -03:00
disas disas/cris: Fix typo in comment 2015-10-01 17:24:02 -07:00
docs docs: update the usage example of "dtrace" backend in tracing.txt 2015-10-09 10:14:05 +01: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 maint: remove unused include for dirent.h 2015-09-11 10:21:38 +03:00
gdb-xml s390x/gdb: expose virtualization specific registers 2015-10-02 13:31:52 +02:00
hw qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
include qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
libdecnumber typofixes - v4 2015-09-11 10:45:43 +03:00
linux-headers vhost: rename VHOST_RESET_OWNER to VHOST_RESET_DEVICE 2015-09-24 16:27:52 +03:00
linux-user linux-user: Remove type casts to union type 2015-10-08 19:46:47 +03:00
migration migration: Disambiguate MAX_THROTTLE 2015-09-30 09:42:04 +02:00
net Remove muldiv64() by using period instead of frequency 2015-09-25 18:03:19 +01:00
pc-bios pc-bios/s390-ccw: avoid floating point operations 2015-10-02 13:31:52 +02:00
pixman@87eea99e44
po Update language files for QEMU 2.4.0 2015-09-11 10:21:38 +03:00
qapi qapi: add missing @ 2015-10-08 19:46:47 +03:00
qga typofixes - v4 2015-09-11 10:45:43 +03:00
qobject Include qapi/qmp/qerror.h exactly where needed 2015-06-22 18:20:41 +02:00
qom qom: Fix invalid error check in property_get_str() 2015-09-19 08:10:12 +02:00
roms pseries: Update SLOF firmware image to qemu-slof-20150813 2015-09-23 10:51:09 +10:00
scripts update-linux-headers: Rename SW_MAX to SW_MAX_ 2015-10-09 15:22:39 +02:00
slirp slirp: Fix non blocking connect for w32 2015-09-24 20:52:28 +02:00
stubs monitor: remove target-specific code from monitor.c 2015-09-16 17:33:32 +02:00
target-alpha qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-arm qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-cris qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-i386 qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-lm32 qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-m68k qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-microblaze qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-mips qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-moxie qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-openrisc qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-ppc qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-s390x qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-sh4 qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-sparc qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-tilegx qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-tricore qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-unicore32 qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
target-xtensa qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
tcg tcg: Check for overflow via highwater mark 2015-10-07 20:36:53 +11:00
tests qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
trace Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
ui ui/cocoa.m: remove open dialog code 2015-09-25 23:14:00 +01:00
util oslib: allocate PROT_NONE pages on top of RAM 2015-10-01 16:16:52 +03:00
.dir-locals.el Add .dir-locals.el file to configure emacs coding style 2015-10-08 19:46:01 +03:00
.exrc
.gitignore libcacard: use the standalone project 2015-09-23 23:34:17 +02:00
.gitmodules
.mailmap
.travis.yml .travis.yml: Run make check for all targets, not just some 2015-10-08 19:46:47 +03:00
accel.c
aio-posix.c AioContext: optimize clearing the EventNotifier 2015-07-22 12:41:40 +01:00
aio-win32.c AioContext: optimize clearing the EventNotifier 2015-07-22 12:41:40 +01:00
arch_init.c smbios: move smbios code into a common folder 2015-08-13 14:08:30 +03:00
async.c AioContext: force event loop iteration using BH 2015-07-29 10:02:06 +01:00
balloon.c Include monitor/monitor.h exactly where needed 2015-06-22 18:20:41 +02:00
block.c block: disable I/O limits at the beginning of bdrv_close() 2015-10-02 13:48:29 +02:00
blockdev-nbd.c Include monitor/monitor.h exactly where needed 2015-06-22 18:20:41 +02:00
blockdev.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
blockjob.c blockjob: add block_job_release function 2015-07-07 14:27:14 +01: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 CODING_STYLE: update mixed declaration rules 2015-09-09 15:34:54 +02:00
configure s390x/gdb: expose virtualization specific registers 2015-10-02 13:31:52 +02:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec-common.c cpu-exec: Migrate some generic fns to cpu-exec-common 2015-09-16 17:33:33 +02:00
cpu-exec.c i386: partial revert of interrupt poll fix 2015-09-25 12:04:44 +02:00
cpus.c s/cpu_get_real_ticks/cpu_get_host_ticks/ 2015-10-08 19:46:01 +03:00
cputlb.c cputlb: Change tlb_set_dirty() arg to cpu 2015-09-16 17:33:33 +02:00
device_tree.c device_tree: Fix a typo 2015-07-27 22:44:47 +03:00
device-hotplug.c pci-hotplug-old: Has been dead for five major releases, bury 2015-03-01 12:37:54 +01:00
disas.c monitor: make monitor_fprintf and mon_get_cpu externally visible 2015-09-25 12:04:42 +02:00
dma-helpers.c range: remove useless inclusions 2015-04-30 16:05:48 +03:00
dump.c Include qapi/qmp/qerror.h exactly where needed 2015-06-22 18:20:41 +02:00
exec.c exec: allocate PROT_NONE pages on top of RAM 2015-10-01 16:16:52 +03:00
gdbstub.c * Support for jemalloc 2015-09-14 16:13:16 +01:00
HACKING
hmp-commands-info.hx hmp: added io apic dump state 2015-09-25 12:04:42 +02:00
hmp-commands.hx monitor: allow device_del to accept QOM paths 2015-09-22 11:31:56 +02:00
hmp.c qmp/hmp: Add throttle ratio to query-migrate and info migrate 2015-09-30 09:42:04 +02:00
hmp.h hmp: add info iothreads command 2015-09-04 13:26:26 +02:00
iohandler.c iohandler: Use aio API 2015-09-07 18:14:03 +02:00
ioport.c - miscellaneous cleanups for TCG (Emilio) and NBD (Bogdan) 2015-04-30 12:04:11 +01:00
iothread.c rcu: actually register threads that have RCU read-side critical sections 2015-07-24 13:57:45 +02:00
kvm-all.c intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
kvm-stub.c kvm: some fixes to kvm_resamplefds_allowed 2015-07-06 12:15:14 -06:00
LICENSE
main-loop.c iohandler: Use aio API 2015-09-07 18:14:03 +02:00
MAINTAINERS MAINTAINERS: Add NSIS file for W32, W64 hosts 2015-10-08 19:46:01 +03:00
Makefile Makefile: fix build when VPATH is outside GIT tree 2015-09-25 12:04:41 +02:00
Makefile.objs libcacard: use the standalone project 2015-09-23 23:34:17 +02:00
Makefile.target * Linux header update and cleanup 2015-09-16 18:06:54 +01:00
memory_mapping.c memory_mapping: Rework cpu related includes 2015-06-26 16:00:50 +02:00
memory.c memory: allow destroying a non-empty MemoryRegion 2015-10-09 15:25:56 +02:00
module-common.c
monitor.c monitor: make monitor_fprintf and mon_get_cpu externally visible 2015-09-25 12:04:42 +02:00
nbd.c nbd: release exp->blk after all clients are closed 2015-09-16 17:33:33 +02:00
numa.c Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +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 maint: remove unused include for signal.h 2015-09-11 10:21:38 +03:00
page_cache.c maint: remove unused include for strings.h 2015-09-11 10:21:38 +03:00
qapi-schema.json qmp/hmp: Add throttle ratio to query-migrate and info migrate 2015-09-30 09:42:04 +02:00
qdev-monitor.c Revert "qdev: Use qdev_get_device_class() for -device <type>,help" 2015-10-09 15:25:57 +02:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qemu-char: Use g_new() & friends where that makes obvious sense 2015-09-16 17:33:33 +02:00
qemu-coroutine-io.c coroutine-io: Return -errno in case of error 2015-03-18 12:07:21 +01:00
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 coroutine: Clean up qemu_coroutine_enter() 2015-03-09 11:11:59 +01:00
qemu-doc.texi monitor: added generation of documentation for hmp-commands-info.hx 2015-09-16 17:33:33 +02:00
qemu-ga.texi qga: start a man page 2015-09-01 13:16:26 -05:00
qemu-img-cmds.hx
qemu-img.c utils: rename strtosz to use qemu prefix 2015-09-25 12:04:41 +02:00
qemu-img.texi maint: remove / fix many doubled words 2015-09-11 10:21:38 +03:00
qemu-io-cmds.c utils: rename strtosz to use qemu prefix 2015-09-25 12:04:41 +02:00
qemu-io.c qemu-io: Remove duplicate 'open' error message 2015-09-14 16:51:36 +02:00
qemu-log.c
qemu-nbd.c qemu-nbd: convert to use the QAPI SocketAddress object 2015-09-25 12:04:40 +02:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx vhost-user: add multiple queue support 2015-09-24 16:27:53 +03:00
qemu-seccomp.c
qemu-tech.texi doc: Refresh URLs in the qemu-tech documentation 2015-09-25 12:20:21 +02:00
qemu-timer.c qemu-timer: initialize "timers_done_ev" to set 2015-07-22 12:41:32 +01:00
qemu.nsi nsis: Add QEMU version information to Windows registry 2015-09-24 20:52:28 +02:00
qemu.sasl
qjson.c QJSON: Use OBJECT_CHECK 2015-05-11 08:59:07 -04:00
qmp-commands.hx monitor: allow device_del to accept QOM paths 2015-09-22 11:31:56 +02:00
qmp.c qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
qtest.c Init page sizes in qtest 2015-09-29 11:33:02 +05:30
README
rules.mak make: load only required dependency files. 2015-08-13 14:08:25 +03:00
softmmu_template.h softmmu: remove now unused functions 2015-09-11 08:16:05 -07: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: Rename debug_insn_start to insn_start 2015-10-07 20:36:26 +11: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 Include monitor/monitor.h exactly where needed 2015-06-22 18:20:41 +02:00
trace-events trace: remove malloc tracing 2015-10-09 10:14:05 +01:00
translate-all.c tcg: Check for overflow via highwater mark 2015-10-07 20:36:53 +11:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2015-06-05 17:09:59 +02:00
translate-common.c translate: move real_host_page setting to -common 2015-09-16 17:33:33 +02:00
user-exec.c osdep.h: Remove qemu_printf 2015-08-19 16:29:53 +01:00
VERSION Open 2.5 development tree 2015-08-11 23:15:55 +01:00
version.rc
vl.c trace: remove malloc tracing 2015-10-09 10:14:05 +01:00
xen-common-stub.c
xen-common.c migration: Fix regression for xenfv and pc,accel=xen machine. 2015-08-03 16:13:40 +00:00
xen-hvm-stub.c pc: Remove redundant arguments from xen_hvm_init() 2015-09-10 11:05:40 +03:00
xen-hvm.c Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
xen-mapcache.c maint: avoid useless "if (foo) free(foo)" pattern 2015-09-11 10:21:38 +03:00

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

- QEMU team