Statistics
| Branch: | Revision:

root @ a9899996

# Date Author Comment
86f69a92 06/08/2011 11:04 am Alexandre Raymond

Fix compilation warning due to missing header for sigaction

Fix the following warning by including signal.h directly in qemu-common.h
----8<----
iohandler.c: In function ‘qemu_init_child_watch’:
iohandler.c:172: warning: implicit declaration of function ‘sigaction’...

9bf0960a 06/08/2011 11:04 am Alexandre Raymond

Fix compilation warning due to missing header for sigaction (followup)

This patch removes all references to signal.h when qemu-common.h is included
as they become redundant.

Signed-off-by: Alexandre Raymond <>
Signed-off-by: Stefan Hajnoczi <>

a9899996 06/08/2011 11:04 am Alexander Graf

slirp: fix guestfwd id

When using -net user,guestfwd=... Qemu immediately complains about the id
being in invalid format. This is because we pass in an id that contains a
colon, while the id restrictions don't allow colons.

This patch changes the colon into a dot, making guestfwd work again....

a90d4690 06/07/2011 09:52 pm Glauber Costa

Add an isa device for SGA

This patch adds a dummy legacy ISA device whose responsibility is to
deploy sgabios, an option rom for a serial graphics adapter.
The proposal is that this device is always-on when -nographics,
but can otherwise be enable in any setup when -device sga is used....

325601b4 06/07/2011 09:52 pm Anthony Liguori

json-lexer: limit the maximum size of a given token

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

29c75ddd 06/07/2011 09:52 pm Anthony Liguori

json-streamer: limit the maximum recursion depth and maximum token count

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

eca7db46 06/07/2011 09:52 pm Anthony Liguori

json-streamer: make sure to reset token_size after emitting a token list

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

11e8a46c 06/07/2011 09:52 pm Anthony Liguori

json-parser: detect premature EOI

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

529a0ef5 06/07/2011 09:52 pm Anthony Liguori

json-lexer: reset the lexer state on an invalid token

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

bd3924a3 06/07/2011 09:52 pm Michael Roth

json-lexer: fix flushing logic to not always go to error state

Currently we flush the lexer by passing in a NULL character. This
generally forces the lexer to go to the corresponding TERMINAL state
for whatever token type it is currently parsing, emits the token to the...

b011f619 06/07/2011 09:52 pm Michael Roth

json-lexer: make lexer error-recovery more deterministic

Currently when we reach an error state we effectively flush everything
fed to the lexer, which can put us in a state where we keep feeding
tokens into the parser at arbitrary offsets in the stream. This makes it...

5e2dafeb 06/07/2011 09:52 pm Michael Roth

json-streamer: add handling for JSON_ERROR token/state

This allows a JSON_ERROR state to be passed to the streamer to force a
flush of the current tokens and pass a NULL token list to the parser
rather that have it churn on bad data. (Alternatively we could just not...

c1990ebf 06/07/2011 09:52 pm Michael Roth

json-parser: add handling for NULL token list

Currently a NULL token list will crash the parser, instead we have it
pass back a NULL QObject.

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

0826c710 06/07/2011 09:52 pm Markus Armbruster

isa-vga: Make available with -device, like the other VGA qdevs

Switch no_user off and make it suppress the default VGA.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Anthony Liguori <>

23bf93b2 06/07/2011 09:52 pm Markus Armbruster

docs: qdev-device-use.txt has become stale, update it

Document more bus addresses.

Update for bugs fixed.

Describe where exactly the -drive options go.

Update for recent split of qdev ide-drive into ide-{cd,hd},
scsi-disk into scsi-{cd,hd}.

Document scsi-hd's removable property only for usb-storage, because...

a12eeaaa 06/07/2011 09:52 pm Luiz Capitulino

QError: Introduce qerror_format_desc()

Refactor non-QError-specific bits out of qerror_human() into general
function that can be used by the error_get_pretty() analogue in the
new error-propagation framework.

Signed-off-by: Luiz Capitulino <>...

87c2f591 06/07/2011 09:52 pm Luiz Capitulino

QError: Introduce qerror_format()

Will be used by new error propagation framework to convert Error objects
into human-readable form.

Signed-off-by: Luiz Capitulino <>
Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

d5ec4f27 06/07/2011 09:52 pm Luiz Capitulino

Introduce the new error framework

New error-handling framework that allows for exception-like error
propagation.

Signed-off-by: Luiz Capitulino <>
Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

ef749d07 06/07/2011 09:52 pm Anthony Liguori

json-parser: propagate error from parser

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

55f8301f 06/07/2011 09:52 pm Anthony Liguori

json-streamer: allow recovery after bad input

Once we detect a malformed message, make sure to reset our state.

Signed-off-by: Michael Roth <>
Signed-off-by: Anthony Liguori <>

a16c53b1 06/06/2011 04:54 pm Anthony Liguori

Fix regression introduced by -machine accel=

Commit 85097db6 changed the timing when kvm_allowed is set until after
kvm is initialized. During initialization, the ioeventfd initialization code
checks kvm_enabled() and after this change, ioeventfd is effectively disabled....

25f3151e 06/06/2011 04:54 pm Anthony Liguori

timer: drop HPET and RTC

dynticks will provide equally good timer granularity on all modern Linux
systems. This is more or less dead code these days.

Signed-off-by: Anthony Liguori <>

d800040f 06/05/2011 06:05 pm Paolo Bonzini

scsi: fix tracing of scsi requests with simple backend

The simple backend only supports a maximum of 6 arguments. Split the
scsi_req_parsed event in two parts to cope with the limit.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Blue Swirl <>

f9188227 06/04/2011 12:50 am Mike Frysinger

configure: check for -Wendif-labels support

Older gcc compilers do not support -Wendif-labels, so move it from the
hardcoded list to the dynamically detected list.

Signed-off-by: Mike Frysinger <>
Reviewed-by: Stefan Hajnoczi <>...

9694b5d1 06/04/2011 12:39 am Stefan Weil

virtio-9p: Remove statement without effect (fix warning from cppcheck)

cppcheck report:
virtio-9p.c:197: warning: Redundant assignment of "flags" to itself

Signed-off-by: Stefan Weil <>
Reviewed-by: Venkateswararao Jujjuri <>...

1f2e98b6 06/03/2011 11:59 pm Alex Williamson

exec: Implement qemu_ram_free_from_ptr()

Required for regions mapped via qemu_ram_alloc_from_ptr(). VFIO
and ivshmem will make use of this to remove mappings when devices
are hot unplugged.

Signed-off-by: Alex Williamson <>
Signed-off-by: Aurelien Jarno <>

c83066d4 06/03/2011 11:12 pm Arun Thomas

multiboot: set boot_device to first partition

The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, which
maps to the second primary partition. To specify the first primary partition,
'part1' should be set to 0x00, since partition numbers start from zero...

81c05daf 06/03/2011 07:42 pm Alex Zuepke

target-arm: BKPT instructions should raise prefetch aborts with IFSR type 00010

Signed-off-by: Alex Zuepke <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

568fffe3 06/03/2011 07:32 pm Christophe Fergeau

tcg: Fix unused-but-set-variable warning

Based on a patch from Hans de Goede <>

This warning is new in gcc 4.6.

Acked-by: Amit Shah <>
Signed-off-by: Christophe Fergeau <>
Signed-off-by: Aurelien Jarno <>

ebecf363 06/03/2011 07:26 pm Peter Maydell

tcg: If DEBUG_TCGV, distinguish TCGv_ptr from TCGv_i32/TCGv_i64

When compiling with DEBUG_TCGV enabled, make the TCGv_ptr type distinct
from TCGv_i32/TCGv_i64. This means that using an i32 or i64 TCG op to
manipulate a TCGv_ptr will always be detected at compile time, rather...

6bd4b08a 06/03/2011 07:26 pm Peter Maydell

tcg/tcg-op.h: Fix prototypes for ld/st functions on 64 bit hosts

The prototypes for the ld/st functions on a 64 bit host declared
the address parameter as a TCGv_i64 rather than a TCGv_ptr. This
worked OK (since the two are aliases), but needs to be fixed to...

03938c13 06/03/2011 07:23 pm Brad

Use the correct header in the TCG MIPS code to find cacheflush() on OpenBSD.

Use the correct header in the TCG MIPS code to find cacheflush() on OpenBSD
to fix compilation of the MIPS host support for OpenBSD/mips64 based architecures.

Signed-off-by: Brad Smith <>...

b7fa9214 06/03/2011 07:13 pm Peter Maydell

target-arm: Fix compilation failure for 64 bit hosts

Use the correct _ptr aliases for manipulating the pointer to
the fp_status; this fixes a compilation failure on 64 bit hosts.

Signed-off-by: Peter Maydell <>
Acked-by: Stefan Weil <>...

47ba1984 06/03/2011 06:47 pm Aurelien Jarno

Merge branch 's390-next' of git://repo.or.cz/qemu/agraf

  • 's390-next' of git://repo.or.cz/qemu/agraf:
    s390x: implement lrvgr
    s390x: fix cksm instruction
    s390x: free tmp explicitly in every opcode for disas_a5()
    target-s390x: Add missing tcg_temp_free_i32()...
594caf07 06/03/2011 06:45 pm Aurelien Jarno

Merge branch 'ppc-next' of git://repo.or.cz/qemu/agraf

  • 'ppc-next' of git://repo.or.cz/qemu/agraf:
    PPC: fix mpc8544ds pci default devices
    Fix segfault on screendump with -nographic
    PPC: install mpc8544ds.dtb
    PPC: fix sregs usage on booke
    ppc: Fix compilation for ppc64-softmmu
587eabfa 06/03/2011 05:07 pm Aurelien Jarno

softfloat: add float*_is_zero_or_denormal()

float*_is_zero_or_denormal() is available for float32, but not for
float64, floatx80 and float128. Fix that.

Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

66fcf8ff 06/03/2011 05:07 pm Aurelien Jarno

target-i386: use floatx80 constants in helper_fld*_ST0()

Instead of using a table which doesn't correspond to anything from
physical in the CPU, use directly the constants in helper_fld*_ST0().

Cc: Andreas Färber <>
Reviewed-by: Peter Maydell <>...

cf67c6ba 06/03/2011 05:07 pm Aurelien Jarno

softfloat-native: remove

Remove softfloat-native support, all targets are now using softfloat
instead.

Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

be22a9ab 06/03/2011 05:07 pm Aurelien Jarno

softfloat: always enable floatx80 and float128 support

Now that softfloat-native is gone, there is no real point on not always
enabling floatx80 and float128 support.

Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

c31da136 06/03/2011 05:07 pm Aurelien Jarno

target-i386: remove old code handling float64

Now that target-i386 uses softfloat, floatx80 is always available and
there is no need anymore to have code handling both float64 and floax80.

Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

142ab5bb 06/03/2011 05:07 pm Aurelien Jarno

target-mips/gdbstub: remove old CONFIG_SOFTFLOAT #ifndef

target-mips has been switched to softfloat only long ago, but
a #ifndef CONFIG_SOFTFLOAT has been forgotten. Remove it.

Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

2c0d18dd 06/03/2011 05:07 pm Aurelien Jarno

target-ppc: remove old CONFIG_SOFTFLOAT #ifdef

target-ppc has been switched to softfloat only long ago, but a
few #ifdef CONFIG_SOFTFLOAT have been forgotten. Remove them.

Cc: Alexander Graf <>
Reviewed-by: Peter Maydell <>...

225b6af7 06/03/2011 02:34 pm Stefan Weil

target-s390x: Add missing tcg_temp_free_i64() in disas_s390_insn(), opc == 0x8e

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

bbf9f3b4 06/03/2011 02:34 pm Stefan Weil

target-s390x: Add missing tcg_temp_free_i64() in disas_s390_insn(), opc == 0x90

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

2497a67f 06/03/2011 02:34 pm Stefan Weil

target-s390x: Add missing tcg_temp_free_i32()

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

87b0b705 06/03/2011 02:34 pm Alexander Graf

s390x: free tmp explicitly in every opcode for disas_a5()

The disas_a5() function provided a TCG tmp variable which was populated
by the respective opcode implementations, but freed at the end of the
function in generic code.

That makes it really hard for code review, so let's move the freeing...

5b185639 06/03/2011 02:34 pm Alexander Graf

s390x: fix cksm instruction

The cksm instruction was implemented incorrectly, rendering UDP and TCP
checksum calculation wrong, making an emulated s390x Linux guest break
in most networking operations.

This patch fixes odd end checksum calculation, takes the input register...

e1b45cca 06/03/2011 02:34 pm Alexander Graf

s390x: implement lrvgr

The LRVGR instruction was missing. Implement it, so everyone's happy.

Reported-by: Balazs Kutil <>
Signed-off-by: Alexander Graf <>

39f41079 06/03/2011 02:34 pm Alexander Graf

s390x: update zipl rom

The zipl bootloader rom we have has seen some dramatic speedups upstream,
so let's update it to improve the experience when booting a guest image.

This binary is based on commit id 9a0842dd9823d529f721b418d554f17c72e009e3.

Signed-off-by: Alexander Graf <>

d4a3ef69 06/03/2011 02:34 pm Stefan Weil

target-s390x: Fix build for non-linux hosts

linux/kvm.h is not always available for compilation.

Neither linux/kvm.h nor kvm.h are needed, so remove both
which also fixes the build problem for non-linux hosts.

Cc: Alexander Graf <>
Signed-off-by: Stefan Weil <>...

be82ee2a 06/03/2011 02:34 pm Stefan Weil

target-s390x: Fix wrong argument in call of tcg_gen_shl_i64()

tcg_gen_shl_i64 needs a 3rd argument of type TCGv_i64.
Set tmp4 so it can be used here.

v2:
Don't call tcg_const_i64() inside of the loop
because it creates additional code.

Signed-off-by: Stefan Weil <>...

640239b2 06/03/2011 02:34 pm Stefan Weil

target-s390x: Fix duplicate call of tcg_temp_new_i64

tmp2 = tcg_temp_new_i64() is already executed unconditionally,
so there is no need to call it a second time for 64 bit hosts.

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

a825aefb 06/03/2011 02:34 pm Stefan Weil

target-s390x: Add missing tcg_temp_free_i64() in gen_jcc()

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

21de37a7 06/03/2011 02:34 pm Stefan Weil

target-s390x: Add missing tcg_temp_free_i64() in do_mh()

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

e32a1832 06/03/2011 02:34 pm Stefan Weil

target-s390x: Add missing tcg_temp_free_i64() in disas_b2()

Signed-off-by: Stefan Weil <>
Signed-off-by: Alexander Graf <>

1ff7854e 06/03/2011 01:42 pm Stefan Weil

ppc: Fix compilation for ppc64-softmmu

When QEMU was configured with --enable-debug-tcg,
compilation fails in spr_write_booke206_mmucsr0() and in
spr_write_booke_pid(). Similar changes are also needed
in conditional code which is normally unused.

Cc: Alexander Graf <>...

fafc0b6a 06/03/2011 01:42 pm Alexander Graf

PPC: fix sregs usage on booke

When compiling qemu with kvm support on BookE PPC machines, I get
the following error:

cc1: warnings being treated as errors
/tmp/qemu/target-ppc/kvm.c: In function 'kvm_arch_get_registers':
/tmp/qemu/target-ppc/kvm.c:188: error: unused variable 'sregs'...
fbd659b7 06/03/2011 01:42 pm Alexander Graf

PPC: install mpc8544ds.dtb

We don't install mpc8544ds.dtb, which means that -M mpc8544ds doesn't
work when installed. Fix it by installing the file.

Signed-off-by: Alexander Graf <>

e34b12ae 06/03/2011 01:42 pm Alexander Graf

Fix segfault on screendump with -nographic

When running -nographic and calling "screendump" on the monitor, qemu
segfaults. Fix the invalid pointer dereference by checking for NULL.

Signed-off-by: Alexander Graf <>

d461e3b9 06/03/2011 01:42 pm Alexander Graf

PPC: fix mpc8544ds pci default devices

After the Qdev'ification of the MPC8544DS board and PCI bus, the internal
PCI bus name changed from "pci" to "pci.0". Reflect this change in the
search for that bus.

This patch enables networking on e500 guests again....

578c7b2c 05/31/2011 11:14 pm Juha Riihim?ki

audio: fix integer overflow expression

Fix an integer overflow that can happen for signed 32 bit types
when using FLOAT_MIXENG. (Note that at the moment this is only true
when using the MacOSX coreaudio audio driver.)

Signed-off-by: Juha Riihim?ki <>...

b1d7d2b9 05/31/2011 04:23 pm Anthony Liguori

Merge remote-tracking branch 'stefanha/trivial-patches' into staging

ede77d29 05/31/2011 04:22 pm Anthony Liguori

Merge remote-tracking branch 'amit/for-anthony' into staging

ed7ec840 05/31/2011 04:20 pm Anthony Liguori

Merge remote-tracking branch 'bonzini/scsi.2' into staging

Conflicts:
hw/usb-msd.c

f590f4c4 05/31/2011 04:17 pm Anthony Liguori

Merge remote-tracking branch 'kraxel/usb.14.pull' into staging

b9055c3c 05/29/2011 01:58 pm Stefan Weil

pflash_cfi02: Fix a typo in debug code (TARGET_FMT_pld -> TARGET_FMT_plx)

Thanks to Tobias Hoffmann <> for this patch.

Signed-off-by: Stefan Weil <>
Signed-off-by: Stefan Hajnoczi <>

06ea77bc 05/29/2011 01:58 pm Stefan Weil

Fix spelling in comment (additon -> addition)

Signed-off-by: Stefan Weil <>
Signed-off-by: Stefan Hajnoczi <>

2eb9f241 05/28/2011 05:20 pm Marcus Comstedt

bitbang_i2c: Fix spurious slave read after NACK

After NACKing a read operation, a raising SCL should not trigger a new
read from the slave. Introduce a new state which just waits for a stop
or start condition after NACK.

Signed-off-by: Marcus Comstedt <>...

42a623c7 05/28/2011 09:26 am Blue Swirl

Move user emulator stuff from cpu-exec.c to user-exec.c

Simplify cpu-exec.c by refactoring.

Signed-off-by: Blue Swirl <>

9eff14f3 05/28/2011 09:25 am Blue Swirl

cpu-exec: prepare for user and softmmu split

There is little in common with user and softmmu versions of cpu_resume_signal(),
split them.

Fix coding style for the user emulator part.

Signed-off-by: Blue Swirl <>

2a3d57ce 05/27/2011 01:20 pm Markus Armbruster

virtio-serial: Clean up virtconsole detection

virtio-serial-bus needs to treat "virtconsole" devices specially. It
uses VirtIOSerialPort member is_console to recognize them. It gets
its value via property initialization. Cute hack, except it lets
users mess with it: "-device virtconsole,is_console=0" isn't plugged...

31d0f80f 05/27/2011 01:20 pm Markus Armbruster

virtio-serial: Drop useless property is_console

All you could ever achieve with it is break stuff, so removing it
should be safe.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Amit Shah <>

a15bb0d6 05/27/2011 01:20 pm Markus Armbruster

virtio-serial: Drop redundant VirtIOSerialPort member info

Signed-off-by: Markus Armbruster <>
Signed-off-by: Amit Shah <>

7edfe652 05/27/2011 01:20 pm Markus Armbruster

virtio-console: Simplify init callbacks

Signed-off-by: Markus Armbruster <>
Signed-off-by: Amit Shah <>

199646d8 05/27/2011 01:20 pm Alon Levy

virtio-serial-bus: use bh for unthrottling

Instead of calling flush_queued_data when unthrottling, schedule
a bh. That way we can return immediately to the caller, and the
flush uses the same call path as a have_data for callbackee.

No migration change is required because bh are called from vm_stop....

5e52e5f9 05/27/2011 01:20 pm Markus Armbruster

virtio-serial: Plug memory leak on qdev exit()

virtio_serial_init() allocates the VirtIOSerialBus dynamically, but
virtio_serial_exit() doesn't free it.

Fix by getting rid of the allocation.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Amit Shah <>

42741212 05/26/2011 01:14 pm Paolo Bonzini

scsi: make write_data return void

The return value is unused anyway.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

2e7cc4d6 05/26/2011 01:14 pm Paolo Bonzini

scsi-generic: Handle queue full

The sg driver currently has a hardcoded limit of commands it
can handle simultaneously. When this limit is reached the
driver will return -EDOM. So we need to capture this to
enable proper return values here.

Signed-off-by: Hannes Reinecke <>...

3944966d 05/26/2011 01:14 pm Paolo Bonzini

esp: rename sense to status

This mirrors the LSI patch that was recently committed.

Signed-off-by: Paolo Bonzini <>
Cc: Christoph Hellwig <>

c6df7102 05/26/2011 01:14 pm Paolo Bonzini

scsi: split command_complete callback in two

Signed-off-by: Paolo Bonzini <>
Cc: Christoph Hellwig <>

aba1f023 05/26/2011 01:14 pm Paolo Bonzini

scsi: rename arguments to the new callbacks

Signed-off-by: Paolo Bonzini <>
Cc: Christoph Hellwig <>

1455084e 05/26/2011 01:14 pm Paolo Bonzini

scsi: ignore LUN field in the CDB

The LUN field in the CDB is a historical relic. Ignore it as reserved,
which is what modern SCSI specifications actually say.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

a1f0cce2 05/26/2011 01:14 pm Hannes Reinecke

scsi: Update sense code handling

The SCSI spec has a quite detailed list of sense codes available.
It even mandates the use of specific ones for some failure cases.
The current implementation just has one type of generic error
which is actually a violation of the spec in certain cases....

fc4f0754 05/26/2011 01:14 pm Paolo Bonzini

scsi: do not call send_command directly

Move the common part of scsi-disk.c and scsi-generic.c to the SCSI layer.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

43a2b339 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce scsi_req_new

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

ad3376cc 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce scsi_req_continue

Signed-off-by: Paolo Bonzini <>
Cc: Christoph Hellwig <>

0c34459b 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce scsi_req_get_buf

... and remove some SCSIDevice variables or fields that now become unused.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

74382217 05/26/2011 01:14 pm Hannes Reinecke

scsi: Implement 'get_sense' callback

The get_sense callback copies existing sense information into
the provided buffer. This is required if sense information
should be transferred together with the command response.

Signed-off-by: Hannes Reinecke <>...

efb9ee02 05/26/2011 01:14 pm Hannes Reinecke

scsi-disk: add data direction checking

scsi_req_parse() already provides for a data direction setting,
so we should be using it to check for correct direction.
And we should return the sense code 'INVALID FIELD IN CDB'
in these cases.

Signed-off-by: Hannes Reinecke <>...

ad2d30f7 05/26/2011 01:14 pm Paolo Bonzini

scsi: reference-count requests

With the next patch, a device may hold SCSIRequest for an indefinite
time. Split a rather big patch, and protect against access errors,
by reference counting them.

There is some ugliness in scsi_send_command implementation due to...

11257187 05/26/2011 01:14 pm Paolo Bonzini

lsi: extract lsi_find_by_tag

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

5c6c0e51 05/26/2011 01:14 pm Hannes Reinecke

scsi: Use 'SCSIRequest' directly

Currently the SCSIRequest structure is abstracted away and cannot accessed
directly from the driver. This requires the handler to do a lookup on
an abstract 'tag' which identifies the SCSIRequest structure.

With this patch the SCSIRequest structure is exposed to the driver. This...

c557e889 05/26/2011 01:14 pm Paolo Bonzini

scsi: commonize purging requests

The code for canceling requests upon reset is already the same. Clean
it up and move it to scsi-bus.c.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

19d110ab 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce scsi_req_abort

This covers the case of canceling a request's I/O and still
completing it.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

94d3f98a 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce scsi_req_cancel

This is for when the request must be dropped in the void,
but still memory should be freed. To this end, the devices
register a second callback in SCSIBusOps.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

2b8b3bb9 05/26/2011 01:14 pm Paolo Bonzini

scsi: use scsi_req_complete

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

40f16dd1 05/26/2011 01:14 pm Paolo Bonzini

scsi-generic: Remove bogus double complete

scsi-generic scsi_read_complete() should not both call the client
complete callback with SCSI_REASON_DATA and call
scsi_command_complete(). The former will cause the client to queue a
new read or write request, while the later will free the request data...

ab9adc88 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce scsi_req_data

This abstracts calling the command_complete callback, reducing churn
in the following patches.

Signed-off-by: Paolo Bonzini <>
Reviewed-by: Christoph Hellwig <>

cfdc1bb0 05/26/2011 01:14 pm Paolo Bonzini

scsi: introduce SCSIBusOps

There are more operations than a SCSI bus can handle, besides completing
commands. One example, which this series will introduce, is cleaning up
after a request is cancelled.

More long term, a "SCSI bus" can represent the LUNs attached to a...

d33e0ce2 05/26/2011 01:14 pm Paolo Bonzini

scsi-generic: do not use a stale aiocb

If a request is canceled after it has been completed, scsi_cancel_io
would pass a stale aiocb to bdrv_aio_cancel. Avoid this.

Signed-off-by: Paolo Bonzini <>
Cc: Christoph Hellwig <>