adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Max Reitz f6758f7d6b virtio-scsi: Allocate op blocker reason before blocking
s->blocker is really only used in hw/scsi/virtio-scsi.c; the only places
where it is used in hw/scsi/virtio-scsi-dataplane.c is when it is
allocated and when it is freed. That does not make a whole lot of sense
(and is actually wrong because this leads to s->blocker potentially
being NULL when blk_op_block_all() is called in virtio-scsi.c), so move
the allocation and destruction of s->blocker to the device realization
and unrealization in virtio-scsi.c, respectively.

Case in point:

$ echo -e 'eject drv\nquit' | \
    x86_64-softmmu/qemu-system-x86_64 \
        -monitor stdio -machine accel=qtest -display none \
        -object iothread,id=thr -device virtio-scsi-pci,iothread=thr \
        -drive if=none,file=test.qcow2,format=qcow2,id=drv \
        -device scsi-cd,drive=drv

Without this patch:

(qemu) eject drv
[1]    10102 done
       10103 segmentation fault (core dumped)

With this patch:

(qemu) eject drv
Device 'drv' is busy: block device is in use by data plane
(qemu) quit

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <1425057113-26940-1-git-send-email-mreitz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-03-02 10:57:07 +01:00
audio audio: Don't free hw resources until after hw backend is stopped 2014-12-22 23:12:25 +00:00
backends Drop superfluous conditionals around g_strdup() 2014-12-10 11:30:55 +03:00
block iscsi: Handle write protected case in reopen 2015-02-27 18:26:31 +01:00
bsd-user bsd-user/elfload.c: Don't use ldl() or ldq_raw() 2015-01-20 15:19:33 +00:00
default-configs Give ivshmem its own config option 2015-02-27 15:17:46 +01:00
disas disas/sh4: Fix warning caused by missing 'static' attribute 2015-02-10 10:26:05 +03:00
docs rcu: add g_free_rcu 2015-02-16 17:30:19 +01:00
dtc@bc895d6d09
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
fsdev virtfs-proxy-helper: Fix possible socket leak. 2015-02-10 09:27:20 +03:00
gdb-xml
hw virtio-scsi: Allocate op blocker reason before blocking 2015-03-02 10:57:07 +01:00
include block: Forbid bdrv_set_aio_context outside BQL 2015-02-27 14:43:45 +01:00
libcacard libcacard: stop linking against every single 3rd party library 2015-02-10 09:27:20 +03:00
libdecnumber
linux-headers linux-headers: update to 3.18-rc5 2014-11-18 11:24:31 +00:00
linux-user linux-user: correct stat structure in MIPS N32 2015-02-13 14:11:29 +00:00
migration migration: Fix warnings caused by missing 'static' attribute 2015-02-10 10:26:05 +03:00
net Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
pc-bios seabios: update to 1.8.0 release 2015-02-19 09:33:03 +01:00
pixman@87eea99e44
po
qapi block: add event when disk usage exceeds threshold 2015-02-06 17:24:21 +01:00
qga qemu-ga-win: Fail loudly on bare 'set-time' 2015-02-17 16:21:50 -06:00
qobject qjson: Drop trailing space for pretty formatting 2014-12-10 10:25:30 +01:00
qom error: Use error_report_err() where appropriate 2015-02-18 10:51:09 +01:00
roms seabios: update to 1.8.0 release 2015-02-19 09:33:03 +01:00
scripts Makefile: don't silence mak file test with V=1 2015-02-27 19:42:45 +01:00
slirp
stubs stubs: Fix warning caused by missing include statement 2015-02-10 10:26:05 +03:00
sysconfigs/target
target-alpha tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-arm Convert to linked list. 2015-02-13 11:44:50 +00:00
target-cris tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-i386 error: Use error_report_err() where appropriate 2015-02-18 10:51:09 +01:00
target-lm32 tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-m68k tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-microblaze tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-mips target-mips: pass 0 instead of -1 as rs in microMIPS LUI instruction 2015-02-13 14:11:29 +00:00
target-moxie tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-openrisc tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-ppc tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-s390x s390x/helper: Remove s390_cpu_physical_memory_map 2015-02-18 09:37:15 +01:00
target-sh4 tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-sparc error: Use error_report_err() where appropriate 2015-02-18 10:51:09 +01:00
target-tricore tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-unicore32 tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
target-xtensa tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00
tcg tcg: Remove unused opcodes 2015-02-12 21:21:38 -08:00
tests - vhost-scsi: add bootindex property 2015-02-24 13:58:18 +00:00
trace
ui hmp: Normalize HMP command handler names 2015-02-25 13:14:37 +00:00
util Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
.exrc
.gitignore .gitignore: Ignore generated "common.env" 2015-01-13 13:43:28 +00:00
.gitmodules
.mailmap
.travis.yml .travis.yml: Add "--enable-modules" 2015-01-26 12:27:05 +01:00
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
MAINTAINERS -----BEGIN PGP SIGNATURE----- 2015-02-06 14:35:52 +00:00
Makefile Makefile: don't silence mak file test with V=1 2015-02-27 19:42:45 +01:00
Makefile.objs QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
Makefile.target Makefile.target: binary depends on config-devices 2015-02-27 19:42:45 +01:00
README
VERSION Open 2.3 development tree 2014-12-09 21:48:34 +00:00
accel.c
aio-posix.c block: Use g_new0() for a bit of extra type checking 2014-12-10 10:31:21 +01:00
aio-win32.c block: Use g_new0() for a bit of extra type checking 2014-12-10 10:31:21 +01:00
arch_init.c Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
async.c block: replace g_new0 with g_new for bottom half allocation. 2015-01-13 11:47:56 +00:00
balloon.c balloon: Fix typo 2015-02-23 10:56:09 -05:00
block.c block: Keep bdrv_check*_request()'s return value 2015-02-16 15:07:19 +00:00
blockdev-nbd.c nbd: Change external interface to BlockBackend 2014-12-10 10:31:12 +01:00
blockdev.c Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
blockjob.c
bootdevice.c bootdevice: fix segment fault when booting guest with '-kernel' and '-initrd' 2015-02-27 15:15:56 +01:00
bt-host.c
bt-vhci.c
configure block/dmg: support bzip2 block entry types 2015-02-06 17:24:21 +01:00
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c coroutine-ucontext: use __thread 2015-01-13 13:43:28 +00:00
coroutine-win32.c
cpu-exec.c - vhost-scsi: add bootindex property 2015-02-24 13:58:18 +00:00
cpus.c - vhost-scsi: add bootindex property 2015-02-24 13:58:18 +00:00
cputlb.c exec: RCUify AddressSpaceDispatch 2015-02-16 17:30:19 +01:00
device-hotplug.c hmp: Name HMP command handler functions hmp_COMMAND() 2015-02-18 11:58:30 +01:00
device_tree.c device-tree: fix memory leak 2015-01-07 16:16:26 +01:00
disas.c
dma-helpers.c
dump.c
exec.c Convert ram_list to RCU 2015-02-16 17:31:55 +01:00
gdbstub.c Add the "-semihosting-config" option. 2014-12-11 12:07:48 +00:00
hmp-commands.hx hmp: Name HMP command handler functions hmp_COMMAND() 2015-02-18 11:58:30 +01:00
hmp.c Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging 2015-02-26 12:16:46 +00:00
hmp.h hmp: Name HMP command handler functions hmp_COMMAND() 2015-02-18 11:58:30 +01:00
iohandler.c
ioport.c
iothread.c
kvm-all.c kvm: g_malloc() can't fail, bury dead error handling 2015-02-10 09:27:20 +03:00
kvm-stub.c pc: kvm: check if KVM has free memory slots to avoid abort() 2014-11-23 12:11:29 +02:00
main-loop.c
memory.c memory: keep the owner of the AddressSpace alive until do_address_space_destroy 2015-02-11 21:48:44 +01:00
memory_mapping.c
module-common.c
monitor.c Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging 2015-02-26 12:16:46 +00:00
nbd.c nbd: Drop BDS backpointer 2015-02-16 14:36:03 +00:00
numa.c numa: Avoid qerror_report_err() outside QMP command handlers 2015-02-18 10:51:37 +01:00
os-posix.c
os-win32.c
page_cache.c xbzrle: rebuild the cache_is_cached function 2015-01-15 17:49:43 +05:30
qapi-schema.json input: misc fixes. 2015-01-22 17:41:59 +00:00
qdev-monitor.c hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() 2015-02-18 11:58:50 +01:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qemu-char: Avoid qerror_report_err() outside QMP command handlers 2015-02-18 10:51:40 +01:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine: try harder not to delete coroutines 2015-01-13 13:43:29 +00:00
qemu-doc.texi block: vhdx - change .vhdx_create default block state to ZERO 2014-12-12 15:42:49 +00:00
qemu-img-cmds.hx
qemu-img.c Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
qemu-img.texi
qemu-io-cmds.c qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qemu-io.c Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
qemu-log.c qemu-log: Correct help text of 'log cpu_reset' 2015-02-10 09:27:20 +03:00
qemu-nbd.c Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx spice: add unix address support 2015-01-22 11:18:41 +01:00
qemu-seccomp.c seccomp: add mlockall to whitelist 2015-01-23 14:07:08 +01:00
qemu-tech.texi
qemu-timer.c qemu-timer.c: Trim list of included headers 2015-01-26 18:15:54 +00:00
qemu.nsi
qemu.sasl
qjson.c QJSON: fix typo in author's email address 2015-02-10 09:27:20 +03:00
qmp-commands.hx block: add event when disk usage exceeds threshold 2015-02-06 17:24:21 +01:00
qmp.c vnc: auto assian an id when calling change vnc qmp interface 2015-02-16 08:47:59 +01:00
qtest.c
rules.mak rules.mak: Fix module build 2015-01-14 10:38:57 +01:00
savevm.c hmp: Normalize HMP command handler names 2015-02-25 13:14:37 +00:00
softmmu_template.h exec: make iotlb RCU-friendly 2015-02-16 17:30:19 +01:00
spice-qemu-char.c spice: Add missing 'static' attribute 2015-02-10 10:26:05 +03:00
tcg-runtime.c
tci.c tcg: Remove unused opcodes 2015-02-12 21:21:38 -08:00
thread-pool.c
thunk.c
tpm.c tpm: Avoid qerror_report_err() outside QMP command handlers 2015-02-18 10:51:37 +01:00
trace-events Convert some debugging printfs to trace calls in pcnet.c. 2015-02-10 09:27:20 +03:00
translate-all.c translate-all: Use g_try_malloc() for dynamic translator buffer 2015-02-10 09:27:21 +03:00
translate-all.h
user-exec.c
version.rc
vl.c timer: replace time() with QEMU_CLOCK_HOST 2015-02-27 15:15:50 +01:00
xen-common-stub.c
xen-common.c
xen-hvm-stub.c
xen-hvm.c Xen: Use the ioreq-server API when available 2015-01-20 14:24:10 +00:00
xen-mapcache.c xen: add a lock for the mapcache 2015-01-20 14:24:17 +00:00

README

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

- QEMU team