QEMU With E2K User Support
Go to file
Paolo Bonzini f34e73cd69 virtio-blk: report non-zero status when failing SG_IO requests
Linux really looks only at scsi->errors for SG_IO requests; it does
not look at the virtio request status at all.  Because of this, when
a SG_IO request is failed early with virtio_blk_req_complete(req,
VIRTIO_BLK_S_UNSUPP), without writing hdr.status, it will look like
a success to the guest.

This is their bug, but we can make it safe for older guests now by
forcing scsi->errors to have a non-zero value whenever a request
has to be failed.

But if we fix the bug in the guest driver, we will have another problem
because QEMU returns VIRTIO_BLK_S_IOERR if the status is non-zero, and
Linux translates that to -EIO.  Rather, the guest should succeed the
request and pass the non-zero status via the userspace-provided SG_IO
structure.  So, remove the case where virtio_blk_handle_scsi can
return VIRTIO_BLK_S_IOERR.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-05-21 15:40:50 -05:00
audio audio: split IN_T into two separate constants 2012-05-18 15:19:28 +04:00
block qcow2: Don't ignore failure to clear autoclear flags 2012-05-14 17:02:19 +02:00
bsd-user bsd-user: fix compile failure 2012-04-13 09:57:36 +01:00
default-configs Drop darwin-user 2012-05-01 00:17:27 +02:00
docs docs: fix one issue in qcow2 specs 2012-05-02 18:39:39 +02:00
fpu softfloat: Replace int16 type with int_fast16_t 2012-04-28 09:13:26 +00:00
fsdev Replace Qemu by QEMU in user visible documentation 2012-04-07 13:58:06 +00:00
gdb-xml
hw virtio-blk: report non-zero status when failing SG_IO requests 2012-05-21 15:40:50 -05:00
include/qemu qom: Documentation addition for object_class_by_name() 2012-05-12 14:17:52 +02:00
libcacard libcacard/vcard_emul_nss: add warning for old coolkey 2012-03-26 18:39:00 +02:00
linux-headers kvm: update linux headers 2012-04-12 19:01:42 -03:00
linux-user linux-user: Fix stale tbs after mmap 2012-05-19 15:49:40 +00:00
net Declare state directory in smb.conf 2012-05-01 19:08:44 -03:00
pc-bios pc-bios: update OpenBIOS images 2012-05-01 10:58:04 +00:00
qapi qapi: add support for command options 2012-05-15 09:15:16 -05:00
qga qemu-ga: align versioning with QEMU_VERSION 2012-05-15 09:17:06 -05:00
QMP qom: quick and dirty QOM filesystem based on FUSE 2012-04-26 13:14:57 -05:00
qom qdev: Use object_property_print() in info qtree 2012-05-12 14:17:52 +02:00
roms seabios: update to 1.7.0 2012-04-17 10:51:41 +02:00
scripts qapi: add support for command options 2012-05-15 09:15:16 -05:00
slirp main_loop_wait: block indefinitely 2012-04-26 13:14:58 -05:00
sysconfigs/target move CPU definitions to /usr/share/qemu/cpus-x86_64.conf (v2) 2012-05-10 12:37:57 -05:00
target-alpha target-alpha: QOM'ify CPU init 2012-04-15 21:26:55 +02:00
target-arm target-arm/cpu.h: Make cpu_init("nonexistent cpu") return NULL 2012-05-10 12:56:09 +00:00
target-cris target-cris: Start QOM'ifying CPU init 2012-04-24 16:04:56 +02:00
target-i386 target-i386: Defer MCE init 2012-05-12 14:17:52 +02:00
target-lm32 Use uintptr_t for various op related functions 2012-04-14 14:23:37 +00:00
target-m68k target-m68k: Add QOM CPU subclasses 2012-04-30 11:32:13 +02:00
target-microblaze target-microblaze: impelemented swapx instructions 2012-05-18 12:17:52 +02:00
target-mips mips: Fix BC1ANY[24]F instructions 2012-05-19 15:51:44 +00:00
target-ppc target-ppc: Some support for dumping TLB_EMB TLBs 2012-05-01 21:47:01 +02:00
target-s390x S390: dont call system_shutdown on disabled wait 2012-05-01 21:04:06 +02:00
target-sh4 target-sh4: Start QOM'ifying CPU init 2012-04-30 11:32:10 +02:00
target-sparc fix block loads broken in commit 30038fd818 2012-05-12 09:48:05 +00:00
target-unicore32 target-unicore32: Move CPU-dependent init into initfn 2012-03-30 11:09:31 +02:00
target-xtensa target-xtensa: fix LOOPNEZ/LOOPGTZ translation 2012-04-21 13:24:45 +00:00
tcg tcg/ppc64: Fix CONFIG_TCG_PASS_AREG0 2012-05-15 00:53:31 +04:00
tests tests: Add rtc-test (fix test regression) 2012-05-21 15:31:06 -05:00
trace trace: make trace_thread_create() use its function arg 2012-03-12 10:12:34 +00:00
ui sockets: use error class to pass listen error 2012-05-10 12:37:57 -05:00
.gitignore .gitignore: add qemu-bridge-helper and option rom build products 2012-03-19 10:52:52 +00:00
.gitmodules
.mailmap
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c aio: simplify qemu_aio_wait 2012-04-19 16:51:47 +02:00
alpha-dis.c
alpha.ld
arch_init.c move CPU definitions to /usr/share/qemu/cpus-x86_64.conf (v2) 2012-05-10 12:37:57 -05:00
arch_init.h eliminate arch_config_name variable 2012-05-10 12:37:55 -05:00
arm-dis.c
arm-semi.c arm-semi: Rename SYS_XXX macros to TARGET_SYS_XXX (fixes compiler warning) 2012-05-03 07:04:48 +02:00
arm.ld
async.c async: Use bool for boolean struct members and remove a hole 2012-05-01 10:13:25 +01:00
balloon.c qapi: fix qmp_balloon() conversion 2012-04-27 11:44:50 -03:00
balloon.h
bitmap.c
bitmap.h
bitops.c
bitops.h
block_int.h block: wait for job callback in block_job_cancel_sync 2012-05-10 10:32:12 +02:00
block-migration.c Purge migration of (almost) everything to do with monitors 2012-03-15 10:39:52 -03:00
block-migration.h
block.c qemu-img: make "info" backing file output correct and easier to use 2012-05-10 10:32:12 +02:00
block.h qemu-img: make "info" backing file output correct and easier to use 2012-05-10 10:32:12 +02:00
blockdev.c block: fail live snapshot if disk has no medium 2012-05-10 10:32:11 +02:00
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 cache-utils: Add missing include file for uintptr_t 2012-03-11 11:25:19 +00:00
Changelog fix some common typos 2012-05-14 07:27:24 +02:00
cmd.c qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
cmd.h
CODING_STYLE Replace Qemu by QEMU in internal documentation 2012-04-07 13:58:25 +00:00
compatfd.c
compatfd.h
compiler.h
config.h
configure configure: Use QEMU instead of Qemu 2012-05-14 07:27:24 +02:00
console.c optimize screendump for the common non-switch case 2012-02-24 13:36:05 -06:00
console.h console: add some trace events 2012-03-12 10:30:23 +00:00
COPYING
COPYING.LIB
coroutine-gthread.c coroutine-gthread.c: Avoid threading APIs deprecated in GLib 2.31 2012-04-14 10:59:14 +00:00
coroutine-sigaltstack.c Merge remote-tracking branch 'kwolf/for-anthony' into staging 2012-05-14 12:45:01 -05:00
coroutine-ucontext.c
coroutine-win32.c
cpu-all.h exec: prepare for splitting 2012-05-01 10:45:02 +00:00
cpu-common.h w64: Fix size of ram_addr_t 2012-03-03 18:10:16 +00:00
cpu-defs.h w64: Fix struct CPUTLBEntry 2012-04-15 21:25:16 +02:00
cpu-exec.c cpu-exec: Remove non-portable type cast and fix format string 2012-04-15 21:25:17 +02:00
cpus.c kvm: Drop redundant kvm_enabled from cpu_thread_is_idle 2012-04-12 19:01:41 -03:00
cpus.h qtest: add clock management 2012-03-30 08:14:11 -05:00
cputlb.c cputlb: fix watchpoints handling 2012-05-12 09:14:38 +00:00
cputlb.h memory: move functions is_romd and section_addr to memory API 2012-05-01 10:45:07 +00:00
cris-dis.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c Fix sign of sscanf format specifiers 2012-03-07 13:03:51 +00:00
cutils.c
def-helper.h Add support for target helper functions which don't return 2012-03-24 13:01:46 +00:00
device_tree.c
device_tree.h
dis-asm.h target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
disas.c fix some common typos 2012-05-14 07:27:24 +02:00
disas.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
dma-helpers.c Use DMADirection type for dma_bdrv_io 2012-04-05 14:54:40 +02:00
dma.h Merge remote-tracking branch 'kwolf/for-anthony' into staging 2012-04-10 08:16:12 -05:00
dyngen-exec.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
elf.h elf.h: Update EF_ARM_ constants to newer ABI versions 2012-04-06 19:25:57 +03:00
envlist.c
envlist.h
error_int.h
error.c error.c: don't return value for void function 2012-04-20 13:14:53 +01:00
error.h Error: Introduce error_copy() 2012-03-15 10:39:52 -03:00
event_notifier.c
event_notifier.h
exec-all.h linux-user: Fix stale tbs after mmap 2012-05-19 15:49:40 +00:00
exec-memory.h
exec-obsolete.h memory: get rid of cpu_register_io_memory() 2012-03-08 19:16:39 +02:00
exec.c linux-user: Fix stale tbs after mmap 2012-05-19 15:49:40 +00:00
gdbstub.c gdbstub: Synchronize CPU state unconditionally in gdb_set_cpu_pc 2012-04-21 13:27:34 +00:00
gdbstub.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
gen-icount.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
HACKING
hmp-commands.hx block: add 'speed' optional parameter to block-stream 2012-04-27 11:44:50 -03:00
hmp.c stream: fix HMP block_job_set_speed 2012-05-10 11:01:59 +02:00
hmp.h qapi: convert device_del 2012-04-09 14:35:25 -03:00
host-utils.c
host-utils.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c runstate: introduce suspended state 2012-05-08 14:30:09 -03:00
int128.h
iohandler.c iohandler: Use bool for boolean struct member and remove holes 2012-05-01 10:13:33 +01:00
ioport-user.c
ioport.c ioport: use INT64_MAX for IO ranges 2012-03-19 15:17:21 +02:00
ioport.h ioport: add destructor method to IORange 2012-03-05 17:36:19 +02:00
iorange.h ioport: add destructor method to IORange 2012-03-05 17:36:19 +02:00
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: Fix dirty tracking with large kernel page size 2012-05-10 12:40:08 +03:00
kvm-stub.c kvm: Drop unused kvm_pit_in_kernel 2012-04-12 19:01:41 -03:00
kvm.h kvm: Drop unused kvm_pit_in_kernel 2012-04-12 19:01:41 -03:00
libfdt_env.h
LICENSE
linux-aio.c aio: remove process_queue callback and qemu_aio_process_queue 2012-04-19 16:37:53 +02:00
lm32-dis.c target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
m68k-dis.c
m68k-semi.c m68k-semi: Don't use CPUState 2012-03-14 22:20:26 +01:00
m68k.ld
main-loop.c main-loop: Calculate poll timeout using timeout argument 2012-05-01 10:46:25 +00:00
main-loop.h Switch SIG_IPI to SIGUSR1 2012-05-10 08:33:34 -05:00
MAINTAINERS Merge branch 'maintainers-up' of git://repo.or.cz/qemu/afaerber 2012-05-01 09:29:44 +00:00
Makefile move CPU definitions to /usr/share/qemu/cpus-x86_64.conf (v2) 2012-05-10 12:37:57 -05:00
Makefile.dis
Makefile.hw
Makefile.objs Beautify makefile commands for generation of files with tracetool 2012-04-25 14:21:35 +01:00
Makefile.target cputlb: move TLB handling to a separate file 2012-05-01 10:45:04 +00:00
Makefile.user qom: Add QOM support to user emulators 2012-03-13 13:23:18 -05:00
memory.c memory: check address space when a listener is registered 2012-04-05 13:09:17 +03:00
memory.h memory: move functions is_romd and section_addr to memory API 2012-05-01 10:45:07 +00:00
microblaze-dis.c
migration-exec.c
migration-fd.c qapi: Convert migrate 2012-03-15 10:39:52 -03:00
migration-tcp.c use inet_listen()/inet_connect() to support ipv6 migration 2012-05-10 12:37:57 -05:00
migration-unix.c
migration.c use inet_listen()/inet_connect() to support ipv6 migration 2012-05-10 12:37:57 -05:00
migration.h use inet_listen()/inet_connect() to support ipv6 migration 2012-05-10 12:37:57 -05:00
mips-dis.c
mips.ld
module.c Remove type field in ModuleEntry as it's not used 2012-03-19 10:52:52 +00:00
module.h
monitor.c hmp: fix bad value conversion for M type 2012-05-08 14:30:22 -03:00
monitor.h suspend: add qmp events 2012-02-24 13:36:04 -06:00
nbd.c sockets: use error class to pass listen error 2012-05-10 12:37:57 -05:00
nbd.h nbd: consistently return negative errno values 2012-04-19 16:36:43 +02:00
net.c net: move compute_mcast_idx() to net.h 2012-03-16 01:04:51 +02:00
net.h net: move compute_mcast_idx() to net.h 2012-03-16 01:04:51 +02:00
notify.c
notify.h
os-posix.c os-posix: Fix build on FreeBSD 2012-04-26 13:14:58 -05:00
os-win32.c
osdep.c
osdep.h softfloat: Replace int16 type with int_fast16_t 2012-04-28 09:13:26 +00:00
oslib-posix.c
oslib-win32.c main-loop: interrupt wait when data arrives on a socket 2012-04-07 08:34:16 +00:00
path.c
pci-ids.txt
pflib.c
pflib.h
poison.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
posix-aio-compat.c aio: remove process_queue callback and qemu_aio_process_queue 2012-04-19 16:37:53 +02:00
ppc64.ld
ppc-dis.c Replace Qemu by QEMU in comments 2012-04-07 14:00:45 +00:00
ppc.ld
qapi-schema-guest.json qemu-ga: guest-shutdown: use only async-signal-safe functions 2012-05-15 09:15:16 -05:00
qapi-schema-test.json qapi: add struct-errors test case to test-qmp-output-visitor 2012-03-27 09:11:00 -03:00
qapi-schema.json runstate: introduce suspended state 2012-05-08 14:30:09 -03:00
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu_socket.h sockets: use error class to pass listen error 2012-05-10 12:37:57 -05:00
qemu-aio.h aio: return "AIO in progress" state from qemu_aio_wait 2012-04-19 16:50:49 +02:00
qemu-barrier.h virtio: order index/descriptor reads 2012-04-25 10:53:47 +03:00
qemu-bridge-helper.c
qemu-char.c sockets: use error class to pass listen error 2012-05-10 12:37:57 -05:00
qemu-char.h
qemu-common.h declare ECANCELED on all machines 2012-05-10 11:01:59 +02:00
qemu-config.c arm: add device tree support 2012-03-02 11:56:38 +00:00
qemu-config.h implement -no-user-config command-line option (v3) 2012-05-10 12:37:57 -05:00
qemu-coroutine-int.h
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c block: allow interrupting a co_sleep_ns 2012-04-19 16:03:27 +02:00
qemu-coroutine.c
qemu-coroutine.h
qemu-doc.texi qemu-doc: Use QEMU instead of qemu for product name 2012-05-14 07:27:24 +02:00
qemu-error.c
qemu-error.h
qemu-file.h Spelling fixes in comments (it's -> its) 2012-03-08 15:22:11 +00:00
qemu-ga.c qemu-ga: align versioning with QEMU_VERSION 2012-05-15 09:17:06 -05:00
qemu-img-cmds.hx
qemu-img.c qemu-img: Fix segmentation fault 2012-05-14 17:02:19 +02:00
qemu-img.texi
qemu-io.c qemu-io: fix the alloc command 2012-05-10 10:32:13 +02:00
qemu-lock.h
qemu-log.h
qemu-nbd.c nbd: do not include block_int.h 2012-04-19 17:19:37 +02:00
qemu-nbd.texi Replace Qemu by QEMU in user visible documentation 2012-04-07 13:58:06 +00:00
qemu-objects.h
qemu-option.c
qemu-option.h
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Merge remote-tracking branch 'sweil/for-1.1' into staging 2012-05-14 10:06:50 -05:00
qemu-os-posix.h
qemu-os-win32.h w64: Fix definition of setjmp 2012-04-15 21:25:16 +02:00
qemu-progress.c
qemu-queue.h Replace Qemu by QEMU in comments 2012-04-07 14:00:45 +00:00
qemu-sockets.c sockets: use error class to pass listen error 2012-05-10 12:37:57 -05:00
qemu-tech.texi Drop darwin-user 2012-05-01 00:17:27 +02:00
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: Fix wrong error message 2012-05-14 07:27:24 +02:00
qemu-timer.h qemu-timer: Move include for __FreeBSD_version to header 2012-05-08 11:14:56 -05:00
qemu-tls.h
qemu-tool.c main_loop_wait: block indefinitely 2012-04-26 13:14:58 -05:00
qemu-user.c qom: Add QOM support to user emulators 2012-03-13 13:23:18 -05:00
qemu-x509.h
qemu-xattr.h
qemu.sasl
qerror.c qerror: add five qerror strings 2012-05-10 12:37:57 -05:00
qerror.h qerror: add five qerror strings 2012-05-10 12:37:57 -05:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h qjson.h: include compiler.h for GCC_FMT_ATTR 2012-03-09 17:34:17 -03:00
qlist.c
qlist.h
qmp-commands.hx block: add mode argument to blockdev-snapshot-sync 2012-05-10 10:32:11 +02:00
qmp.c runstate: introduce suspended state 2012-05-08 14:30:09 -03:00
qobject.h
qstring.c
qstring.h
qtest.c qtest: Fix tv_usec != long 2012-04-24 09:50:31 -05:00
qtest.h qtest: add dummy functions for user emulators 2012-04-19 18:52:35 +00:00
range.h
readline.c
readline.h
README
rules.mak Beautify makefile commands for generation of files with tracetool 2012-04-25 14:21:35 +01:00
s390-dis.c
s390.ld
savevm.c w64: Fix time conversion for some versions of MinGW-w64 2012-04-15 21:25:18 +02:00
sh4-dis.c
softmmu_defs.h softmmu templates: optionally pass CPUState to memory access functions 2012-03-18 12:21:52 +00:00
softmmu_exec.h
softmmu_header.h w64: Fix data types in softmmu*.h 2012-04-15 21:25:17 +02:00
softmmu_template.h w64: Fix data types in softmmu*.h 2012-04-15 21:25:17 +02:00
softmmu-semi.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
sparc64.ld
sparc-dis.c
sparc.ld
spice-qemu-char.c spice-qemu-char.c: Show what name is unsupported 2012-04-20 13:14:53 +01:00
sysemu.h qapi: Convert migrate 2012-03-15 10:39:52 -03:00
targphys.h
tcg-runtime.c
tci-dis.c
tci.c tci: Fix wrong macro name for debug code 2012-05-08 11:15:18 -05:00
thunk.c linux-user: add struct old_dev_t compat 2012-04-06 18:49:58 +03:00
thunk.h linux-user: Fix invalid TARGET_ABI_BITS usage on ppc hosts 2012-05-01 21:47:01 +02:00
TODO
trace-events Merge remote-tracking branch 'spice/spice.v52' into staging 2012-04-18 07:56:18 -05:00
translate-all.c w64: Fix data type of tb_next and other variables used for host addresses 2012-04-07 11:27:45 +00:00
uboot_image.h
user-exec.c user-exec.c: Don't assert on segfaults for non-valid addresses 2012-05-08 11:15:18 -05:00
VERSION Update version to 1.1.0-rc2 2012-05-14 17:56:50 -05:00
version.rc
vgafont.h
vl.c Merge remote-tracking branch 'origin/master' into staging 2012-05-14 08:44:32 -05:00
vmstate.h Purge migration of (almost) everything to do with monitors 2012-03-15 10:39:52 -03:00
x86_64.ld
xen-all.c xen: add a dummy xc_hvm_inject_msi for Xen < 4.2 2012-04-17 18:04:42 +00:00
xen-mapcache.c xen-mapcache: don't unmap locked entry during mapcache invalidation 2012-04-13 17:35:06 +00:00
xen-mapcache.h xen mapcache: check if memory region has moved. 2012-03-19 18:21:12 +00:00
xen-stub.c Xen: basic HVM MSI injection support. 2012-04-13 17:34:08 +00:00
xtensa-semi.c target-xtensa: Move helpers.h to helper.h 2012-04-14 03:48:08 +04:00

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

- QEMU team