usb: cancel async packets on unplug
This patch adds USBBusOps struct with (for now) only a single callbackwhich is called when a device is about to be destroyed. The USB Hostadapters are implementing this callback and use it to cancel any asyncrequests which might be in flight before the device actually goes away....
usb-ehci: drop EXECUTING checks.
The state machine doesn't stop in EXECUTING state any more when asyncpackets are in flight, so the checks are not needed any more and canbe dropped.
Also kick out the check for the frame timer. As we don't stop & sleep...
Fix USB mouse Set_Protocol behavior
The QEMU USB mouse claims to support the "boot" protocol(bInterfaceSubClass is 1). However, the mouse rejects theSet_Protocol command.
The qemu mouse does support the "boot" protocol specification, so asimple fix is to enable the Set_Protocol request....
The USB tablet should not claim boot protocol support.
The USB tablet advertises that it supports the "boot" protocol.However, its reports aren't "boot" protocol compatible. So, itshouldn't claim that.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>...
usb-ehci: itd handling fixes.
This patch fixes a bunch of issues in the itd descriptor handling.Most important fix is to handle transfers which cross page borderscorrectly by looking up the address of the next page. Luckily thelinux uses physically contigous memory so the data used to hits the...
usb-ehci: split trace calls to handle arg count limits
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb-ehci: fix offset writeback in ehci_buffer_rw
Two bugs at once:
First the mask is backwards, so the it used to keeps the offset andclears the page address, which is not what we need when we update theoffset.
Second the offset calculation is wrong in case head isn't page aligned....
usb-ehci: fix error handling.
Set the correct bits for nodev, stall and babble errors.Raise errint irq. Fix state transition from WRITEBACKto the next state.
ehci: fix a number of unused-but-set-variable warnings (new with gcc-4.6)
usb-ehci: multiqueue support
This patch adds support for keeping multiple queues going at the sametime. One slow device will not affect other devices any more.
The patch adds code to manage EHCIQueue structs. It also does a numberof changes to the state machine:...
usb-ehci: trace buffer copy
Add a trace point for buffer copies and drop the DPRINTF's.
No change in behavior.
usb-ehci: add queue data struct
Add EHCIQueue struct, move the fields needed to track the queue stateinto that struct. Pass the new struct instead of ehci state down tofunctions which handle the queue state. Lot of variable references havechanged due to that without an actual functional change....
usb-linux: catch ENODEV in more places.
Factor out disconnect code (called when a device disappears) to aseparate function. Add a check for ENODEV errno to a few more placesto make sure we notice disconnects.
usb-ehci: trace mmio and usbsts
This patch starts adding trace support to ehci. It tracesupdates of the status register (USBSTS), mmio access andcontroller reset.
It also adds functions to set and clear status register bitsand puts them in use everywhere....
usb-ehci: trace state machine changes
Add functions to get and set the current state of the state machine,add tracepoints there to trace state transitions. Add support fortraceing the queue heads and transfer descriptors as we look at them.
Drop a few DPRINTFs and all DPRINTF_ST lines, they are obsolete now....
usb-ehci: trace port state
Trace usb port operations (attach, detach, reset),drop a few obsolete DPRINTF's.
usb-ehci: improve mmio tracing
Add a separate tracepoint to log how register values change in responseto a mmio write. Especially useful for registers which have read-onlyor clear-on-write bits in them.
Changelog: Add explanatory note that this file is no longer updated
Add an explanatory note to the top of Changelog pointing at thewiki and git history for changelogs for more recent releases.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
configure: Detect and don't try to use older libcurl
Older versions of libcurl don't have some of the features we try touse, in particular curl_multi_setopt(). Check for this in the 'islibcurl available?' configure test so we disable curl support if the...
doc: Minor typo fix.
Thanks to agraf_, stefanha and Snader_LB for their IRC assistance.
Thanks to Markus Armbruster and Alexander Graf (again) for theirassistance with the second version of this patch. No patch is toosimple to test...
Signed-off-by: Brad Hards <bradh@frogmouth.net>...
sigfd: use pthread_sigmask
Qemu uses signalfd to figure out, if a signal occured without the needto actually receive the signal. Instead, it can read from the fd to receiveits news.
Now, we obviously don't always have signalfd around. Especially not on...
Merge remote branch 'rth/axp-next' into alpha-merge
fsdev: Fix archs that dont use fsdev
Fix provided by: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Merge remote-tracking branch 'qmp/for-anthony' into staging
Merge remote-tracking branch 'jvrao/for-anthony' into staging
Merge remote-tracking branch 'spice/spice.v37' into staging
Conflicts: vl.c
Merge remote-tracking branch 'stefanha/trivial-patches' into staging
rbd: allow configuration of rados from the rbd filename
The new format is rbd:pool/image[@snapshot][:option1=value1[:option2=value2...]]Each option is used to configure rados, and may be any Ceph option, or "conf".The "conf" option specifies a Ceph configuration file to read....
rbd: check return values when scheduling aio
If scheduling fails, the number of outstanding I/Os must be correct,or there will be a hang when waiting for everything to be flushed.
Reviewed-by: Christian Brunner <chb@muc.de>Reported-by: Stefan Hajnoczi <stefanha@gmail.com>...
rbd: Add bdrv_truncate implementation
Reviewed-by: Christian Brunner <chb@muc.de>Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
qcow2: Fix memory leaks in error cases
This fixes memory leaks that may be caused by I/O errors during L1 table growth(can happen during save_vm) and in qemu-img check.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
bdrv_img_create: Fix segfault
Block drivers that don't support creating images don't have a size option. Failgracefully instead of segfaulting when trying to access the option's value.
qemu-img create: Fix displayed default cluster size
When not specifying a cluster size on the command line, qemu-img printeda cluster size of 0:
Formatting '/tmp/test.qcow2', fmt=qcow2 size=67108864 encryption=off cluster_size=0
This patch adds the default cluster size to the QEMUOptionParameter list, so...
block/raw-posix: get right partition size
use the correct way to get the size of a disk device or partition
From: Adam Hamsik <haad@netbsd.org>Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
rbd: use the higher level librbd instead of just librados
librbd stacks on top of librados to provide accessto rbd images.
Using librbd simplifies the qemu code, and allowsqemu to use new versions of the rbd formatwith few (if any) changes.
Reviewed-by: Christian Brunner <chb@muc.de>...
ide/core: Remove explicit setting of BM_STATUS_INT
BM_STATUS_INT is automatically set during ide_set_irq(), there's no reason toset it manually in addition.
There is even one case where the interrupt status bit was set, but no IRQ wasraised. This is when the PRD table was reached but there is more data to...
block: clarify the meaning of BDRV_O_NOCACHE
Change BDRV_O_NOCACHE to only imply bypassing the host OS file cache,but no writeback semantics. All existing callers are changed to alsospecify BDRV_O_CACHE_WB to give them writeback semantics.
Signed-off-by: Christoph Hellwig <hch@lst.de>...
vmdk: fix endianness bugs
The vmdk code is sloppy when handling the header descriptor duringcreation of an image. Fix all header accesses in the create path toeither store native endianness or convert it when appropriate.
Reported-by: Yury Tsarev <ytsarev@novell.com>...
block/raw-posix: use a character device if a block device is given
On NetBSD a userland process is better with the character deviceinterface. In addition, a block device can't be opened twice; if a Xenbackend opens it, qemu can't and vice-versa.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>...
virtio: Move virtio-pci to hw library
This module has no target dependencies (except for target_phys_addr_tsize) and can thus be built as part of libhw.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>...
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’...
Fix compilation warning due to missing header for sigaction (followup)
This patch removes all references to signal.h when qemu-common.h is includedas they become redundant.
Signed-off-by: Alexandre Raymond <cerbere@gmail.com>Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
slirp: fix guestfwd id
When using -net user,guestfwd=... Qemu immediately complains about the idbeing in invalid format. This is because we pass in an id that contains acolon, while the id restrictions don't allow colons.
This patch changes the colon into a dot, making guestfwd work again....
m68k: Replace gen_im32() by tcg_const_i32()
Signed-off-by: Laurent Vivier <laurent@vivier.eu>Reviewed-by: Andreas Färber <andreas.faerber@web.de>Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
target-i386: Make x86 mfence and lfence illegal without SSE2
While trying to use qemu -cpu pentium3 to test for incorrect uses of certainSSE2 instructions, I found that QEMU allowed the mfence and lfenceinstructions to be executed even though Pentium 3 doesn't support them....
Add an isa device for SGA
This patch adds a dummy legacy ISA device whose responsibility is todeploy 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....
json-lexer: limit the maximum size of a given token
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
json-streamer: limit the maximum recursion depth and maximum token count
json-streamer: make sure to reset token_size after emitting a token list
json-parser: detect premature EOI
json-lexer: reset the lexer state on an invalid token
json-lexer: fix flushing logic to not always go to error state
Currently we flush the lexer by passing in a NULL character. Thisgenerally forces the lexer to go to the corresponding TERMINAL statefor whatever token type it is currently parsing, emits the token to the...
json-lexer: make lexer error-recovery more deterministic
Currently when we reach an error state we effectively flush everythingfed to the lexer, which can put us in a state where we keep feedingtokens into the parser at arbitrary offsets in the stream. This makes it...
json-streamer: add handling for JSON_ERROR token/state
This allows a JSON_ERROR state to be passed to the streamer to force aflush of the current tokens and pass a NULL token list to the parserrather that have it churn on bad data. (Alternatively we could just not...
json-parser: add handling for NULL token list
Currently a NULL token list will crash the parser, instead we have itpass back a NULL QObject.
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 <armbru@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
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...
QError: Introduce qerror_format_desc()
Refactor non-QError-specific bits out of qerror_human() into generalfunction that can be used by the error_get_pretty() analogue in thenew error-propagation framework.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>...
QError: Introduce qerror_format()
Will be used by new error propagation framework to convert Error objectsinto human-readable form.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Introduce the new error framework
New error-handling framework that allows for exception-like errorpropagation.
json-parser: propagate error from parser
json-streamer: allow recovery after bad input
Once we detect a malformed message, make sure to reset our state.
Fix regression introduced by -machine accel=
Commit 85097db6 changed the timing when kvm_allowed is set until afterkvm is initialized. During initialization, the ioeventfd initialization codechecks kvm_enabled() and after this change, ioeventfd is effectively disabled....
timer: drop HPET and RTC
dynticks will provide equally good timer granularity on all modern Linuxsystems. This is more or less dead code these days.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
spice-qemu-char: Fix flow control in client -> guest direction
In the old spice-vmc device we used to have:last_out = virtio_serial_write(&svc->port, p, MIN);if (last_out > 0) ...
Now in the chardev backend we have:last_out = MIN;...
spice: add option for disabling copy paste support
Some people want to be able disable spice's guest <-> client copy paste supportbecause of security considerations.
[ kraxel: drop old-version error message ]
qxl: add to the list of devices which disable the default vga
spice: add SASL support
Turn on SASL support by appending "sasl" to the spice arguments, whichrequires that the client use SASL to authenticate with the spice. Theexact choice of authentication method used is controlled from thesystem / user's SASL configuration file for the 'qemu' service. This...
qemu-config: comment spell fix
spice: require spice 0.6.0 or newer.
This patch raises the minimum required spice version to 0.6.0 and dropsa few ifdefs.
0.6.0 is the first stable release with the current libspice-server API,there shouldn't be any 0.5.x development versions deployed any more....
qxl: fix cmdlog for vga
Signed-off-by: Alon Levy <alevy@redhat.com>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
scsi: fix tracing of scsi requests with simple backend
The simple backend only supports a maximum of 6 arguments. Split thescsi_req_parsed event in two parts to cope with the limit.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
configure: check for -Wendif-labels support
Older gcc compilers do not support -Wendif-labels, so move it from thehardcoded list to the dynamically detected list.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>...
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 <weil@mail.berlios.de>Reviewed-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>...
exec: Implement qemu_ram_free_from_ptr()
Required for regions mapped via qemu_ram_alloc_from_ptr(). VFIOand ivshmem will make use of this to remove mappings when devicesare hot unplugged.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
multiboot: set boot_device to first partition
The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, whichmaps to the second primary partition. To specify the first primary partition,'part1' should be set to 0x00, since partition numbers start from zero...
target-arm: BKPT instructions should raise prefetch aborts with IFSR type 00010
Signed-off-by: Alex Zuepke <azuepke@sysgo.com>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tcg: Fix unused-but-set-variable warning
Based on a patch from Hans de Goede <hdegoede@redhat.com>
This warning is new in gcc 4.6.
Acked-by: Amit Shah <amit.shah@redhat.com>Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tcg: If DEBUG_TCGV, distinguish TCGv_ptr from TCGv_i32/TCGv_i64
When compiling with DEBUG_TCGV enabled, make the TCGv_ptr type distinctfrom TCGv_i32/TCGv_i64. This means that using an i32 or i64 TCG op tomanipulate a TCGv_ptr will always be detected at compile time, rather...
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 declaredthe address parameter as a TCGv_i64 rather than a TCGv_ptr. Thisworked OK (since the two are aliases), but needs to be fixed to...
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 OpenBSDto fix compilation of the MIPS host support for OpenBSD/mips64 based architecures.
Signed-off-by: Brad Smith <brad@comstyle.com>...
target-arm: Fix compilation failure for 64 bit hosts
Use the correct _ptr aliases for manipulating the pointer tothe fp_status; this fixes a compilation failure on 64 bit hosts.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>Acked-by: Stefan Weil <weil@mail.berlios.de>...
Merge branch 's390-next' of git://repo.or.cz/qemu/agraf
Merge branch 'ppc-next' of git://repo.or.cz/qemu/agraf
softfloat: add float*_is_zero_or_denormal()
float*_is_zero_or_denormal() is available for float32, but not forfloat64, floatx80 and float128. Fix that.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-i386: use floatx80 constants in helper_fld*_ST0()
Instead of using a table which doesn't correspond to anything fromphysical in the CPU, use directly the constants in helper_fld*_ST0().
Cc: Andreas Färber <andreas.faerber@web.de>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>...
softfloat-native: remove
Remove softfloat-native support, all targets are now using softfloatinstead.
softfloat: always enable floatx80 and float128 support
Now that softfloat-native is gone, there is no real point on not alwaysenabling floatx80 and float128 support.
target-i386: remove old code handling float64
Now that target-i386 uses softfloat, floatx80 is always available andthere is no need anymore to have code handling both float64 and floax80.
target-mips/gdbstub: remove old CONFIG_SOFTFLOAT #ifndef
target-mips has been switched to softfloat only long ago, buta #ifndef CONFIG_SOFTFLOAT has been forgotten. Remove it.
target-ppc: remove old CONFIG_SOFTFLOAT #ifdef
target-ppc has been switched to softfloat only long ago, but afew #ifdef CONFIG_SOFTFLOAT have been forgotten. Remove them.
Cc: Alexander Graf <agraf@suse.de>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>...
target-s390x: Add missing tcg_temp_free_i64() in disas_s390_insn(), opc == 0x8e
Signed-off-by: Stefan Weil <weil@mail.berlios.de>Signed-off-by: Alexander Graf <agraf@suse.de>
target-s390x: Add missing tcg_temp_free_i64() in disas_s390_insn(), opc == 0x90
target-s390x: Add missing tcg_temp_free_i32()
s390x: free tmp explicitly in every opcode for disas_a5()
The disas_a5() function provided a TCG tmp variable which was populatedby the respective opcode implementations, but freed at the end of thefunction in generic code.
That makes it really hard for code review, so let's move the freeing...
s390x: fix cksm instruction
The cksm instruction was implemented incorrectly, rendering UDP and TCPchecksum calculation wrong, making an emulated s390x Linux guest breakin most networking operations.
This patch fixes odd end checksum calculation, takes the input register...
s390x: implement lrvgr
The LRVGR instruction was missing. Implement it, so everyone's happy.
Reported-by: Balazs Kutil <bkutil@novell.com>Signed-off-by: Alexander Graf <agraf@suse.de>
target-s390x: Add missing tcg_temp_free_i64() in gen_jcc()
target-s390x: Add missing tcg_temp_free_i64() in do_mh()
target-s390x: Add missing tcg_temp_free_i64() in disas_b2()