monitor: Use QERR_INVALID_PARAMETER instead of QERR_INVALID_CPU_INDEX
This changes the error message from "Invalid CPU index" to "Invalidparameter index" in the human monitor.
Signed-off-by: Markus Armbruster <armbru@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Revert "QError: New QERR_INVALID_CPU_INDEX"
This reverts commit 64a34bb14c0e358a6b2f14805e59ef25bf62d6d5.
qemu-option: Make qemu_opts_foreach() accumulate return values
Return the bitwise inclusive or of all return values instead of thelast call's value. This lets you find out whether any of the callsreturned a non-zero value.
No functional change, as existing users either don't care for the...
qdev: Fix exit code for -device ?
Help was shoehorned into device creation, qdev_device_add(). Sincehelp doesn't create a device, it returns NULL, which looks to callersjust like failed device creation. Monitor handler do_device_add()doesn't care, but main() exits unsuccessfully....
monitor: New argument type 'b'
This is a double value with optional suffixes G, g, M, m, K, k. We'llneed this to get migrate_set_speed() QMP-ready.
monitor: Use argument type 'b' for migrate_set_speed
Before, it used type 's', which strips quotes and interprets escapes,and is quite inappropriate for QMP.
Negative arguments are no flushed to zero. Before, they were cast touint32_t, which wrecked the sign....
monitor: convert do_migrate_set_speed() to QObject
monitor: New argument type 'T'
This is a double value with optional suffixes ms, us, ns. We'll needthis to get migrate_set_downtime() QMP-ready.
monitor: Use argument type 'T' for migrate_set_downtime
monitor: convert do_migrate_set_downtime() to QObject
seabios: use correct submodule hash
Commit 392ecf543dd2b219828374850d833296a55567ea introduced an accidental changeto the roms/seabios submodule. This commit partially reverts that commit toensure the seabios module points to the right commit.
Reported-by: Marcelo Tosatti <mtosatti@redhat.com>...
monitor: Document argument type 'M'
Was forgotten in commit b6e098d7.
QDict: New qdict_get_double()
Helper function just like qdict_get_int(), just for QFloat/double.
bsd/darwin-user: mmap_frag() users only check for -1 error
See also ee636500d6eab44b83f09cb730b67226b70423b1.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
cris: Prettify register dumps.
Use friendly names for registers in the dumps.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
sparc32 don't mark page dirty when failing
if the access check fails, the page can not be modifiedand shouldn't be marked dirty.The patch fixes the "hsfs_putpage: dirty HSFS page" error in Solaris guests.
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>...
sparc64: implement basic IOMMU/interrupt handling
Also add reset control.
Sparc64: byte swap IO port access
This requires an updated OpenBIOS image.
virtio-blk: Fix restart after read error
Current code assumes that only write requests are ever going to be restarted.This is wrong since rerror=stop exists. Instead of directly starting writes,use the same request processing as used for new requests....
virtio-blk: Fix error cases which ignored rerror/werror
If an I/O request fails right away instead of getting an error only in thecallback, we still need to consider rerror/werror.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
virtio-serial-bus: Fix bus initialisation and allow for bus identification
This commit enables one to use multiple virtio-serial devices and toassign ports to arbitrary devices like this:
-device virtio-serial,id=foo -device virtio-serial,id=bar \ -device virtserialport,bus=foo.0,name=foo \...
cirrus: Properly re-register cirrus_linear_io_addr on vram unmap
This fixes CONFIG_FB_CIRRUS for Linux guests and probably much more:
When switching away from linearly mapped vram, we also have to restorethe I/O handlers for the LFB.
This regression was once introduced by commit 2bec46dc97....
virtio_blk: Factor virtio_blk_handle_request out
We need a function that handles a single request. Create one by splitting outcode from virtio_blk_handle_output.
softmmu: Dont clobber retaddr in slow_ldx().
When splitting up unaligned IO accesses, ld calls slow_ld which wasclobbering retaddr.
AFAIK the problem only shows up when running emulations with -icountthat may abort TB execution on IO accesses.
Solaris: test for presence of commands with has()
Signed-off-by: Loïc Minier <lool@dooz.org>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Add and use has() and path_of() funcs
Add has() and path_of() funcs and use them across configure; has()will test whether a command or builtin is available; path_of() willsearch the PATH for executables and return the full pathname if found.
Signed-off-by: Loïc Minier <lool@dooz.org...
Check for sdl-config before calling it
Check whether sdl-config is available before calling it, otherwise./configure triggers a warning: ./configure: 957: sdl-config: not found
If neither the .pc file not sdl-config are present, disable SDL support....
Monitor: Fix command execution regression
Function is_async_return() added by commit 940cc30d0d4 assumesthat 'data', which is returned by handlers, is always a QDict.
This is not true, as QLists can also be returned, in this casewe'll get a segfault....
sparc64: reimplement tick timers v4
sparc64 timer has tick counter which can be set and read,and tick compare value used as deadline to fire timer interrupt.The timer is not used as periodic timer, instead deadlineis set each time new timer interrupt is needed....
sparc64: correct write extra bits to cwp
- correctly fit to cwp if provided window number is out of range
Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Fix BSD build
<sys/wait.h> must be included in order to use WIF* macros.
Fix regression in option parsing
Commit ec229bbe7 broke invocation without a specific -hda. IOW, qemu foo.img.The lack of an optind update caused an infinite loop.
Reported-by: Amit Shah <amit.shah@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
pflash: Buffer block writes
Buffer block writes to avoid flushing every word access onto backingstorage device. This significantly speeds up flash emulation for flashesconnected through an 8 or 16-bit bus combined with backing storage (-pflash).
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
block: avoid creating too large iovecs in multiwrite_merge
If we go over the maximum number of iovecs support by syscall we getback EINVAL from the kernel which translate to I/O errors for the guest.
Add a MAX_IOV defintion for platforms that don't have it. For now we use...
New API for asynchronous monitor commands
Qemu has a number of commands that can operate asynchronously (savevm, migrate,etc) and it will be getting more. For these commands, the user monitor needsto be suspended, but QMP monitors could continue to to accept other commands....
virtio: Add memory statistics reporting to the balloon driver
When using ballooning to manage overcommitted memory on a host, a system forguests to communicate their memory usage to the host can provide informationthat will minimize the impact of ballooning on the guests. The current method...
vnc_refresh: calling vnc_update_client might free vs
Hi all,this patch fixes another bug in vnc_refresh: calling vnc_update_clientmight cause vs to be free()ed, in this case we cannot access vs->nextright after to examine the next item on the list.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>...
block/raw-posix: Abort on pread beyond end of non-growable file
This shouldn't happen under any normal circumstances. However, it looks likeit's possible to achieve this with corrupted images. Without this patchraw_pread is hanging in an endless loop in such cases....
win32: pair qemu_memalign() with qemu_vfree()
Win32 suffers from a very big memory leak when dealing with SCSI devices.Each read/write request allocates memory with qemu_memalign (ieVirtualAlloc) but frees it with qemu_free (ie free).Pair all qemu_memalign() calls with qemu_vfree() to prevent such leaks....
Tell users about out-of-memory errors
Aborting without an error message when memory is shortis not helpful, so print the reason for the abort.
Try qemu -m 1000000or qemu -m 2000 (win32)
to force an out-of-memory error.
win32/sdl: Fix toggle full screen
Toggle full screen on Win32/SDL 1.2.13 was broken by commitc18a2c360e3100bbd71162cf922dcd8c429a8b71. Re-add the call todo_sdl_resize() which was removed in this revision
Signed-off-by: Herve Poussineau <hpoussin@reactos.org>...
PCI: fix bridge configuration
PCI bridges' qdev info structures must indicate bridge header type,otherwise critical bridge registers (esp. PCI_PRIMARY_BUS,PCI_SECONDARY_BUS, PCI_SUBORDINATE_BUS) will not be writable.
fix savevm command without id or tag
savevm without id or tag segfaults in:
(gdb) bt#0 0x00007f600a83bf8a in __strcmp_sse42 () from /lib64/libc.so.6#1 0x00000000004745b6 in bdrv_snapshot_find (bs=<value optimized out>, sn_info=0x7fff996be280, name=0x0) at savevm.c:1631...
qcow2: rename two QCowAIOCB members
The n member is not very descriptive and very hard to grep, rename it tocur_nr_sectors to better indicate what it is used for. Also renamenb_sectors to remaining_sectors as that is what it is used for.
Signed-off-by: Christoph Hellwig <hch@lst.de>...
PCI: Convert pci_info() to QObject
The returned QObject is a QList of all buses. Each bus isrepresented by a QDict, which has a key with a QList of allPCI devices attached to it. Each device is represented bya QDict.
As has happended to other complex conversions, it's hard to...
PCI: do_pci_info(): PCI bridge devices support
This commit completes the do_pci_info() conversion toQObject by adding support to PCI bridge devices.
This is done by recursively adding devices in the"pci_bridge" key.
IMPORTANT: This code is being added separately because I could...
ide save/restore current transfer fields
If migration takes place between write of the bmdma address register andwrite of the command register (to initiate DMA), the destination willnot properly start the DMA op, hanging the guest:
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen...
Fix generation of config-host.h
This patch improves Anthony patch a6a853c86275efd89996ce59612a000c5873db5d
Once there, it improves handling of object files for qemu tools
cc: Andreas Färber <andreas.faerber@web.de>Signed-off-by: Juan Quintela <quintela@redhat.com>...
virtio-console: Rename virtio-serial.c back to virtio-console.c
This file was renamed to ease the reviews of the recent changesthat went in.
Now that the changes are done, rename the file back to its originalname.
Signed-off-by: Amit Shah <amit.shah@redhat.com>...
virtio-console: Automatically use virtio-serial-bus for the older -virtioconsole invocation
These hunks got dropped off mysteriously during the rebasing of myvirtio-serial series. Thanks go to Markus for noticing it.
Without these fixes, -virtioconsole doesn't actually have any effect....
block: clean up bdrv_open2 structure a bit
Check the whitelist as early as possible instead of continuing thesetup, and move all the error handling code to the end of thefunction.
Signed-off-by: Christoph Hellwig <hch@lst.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
block: kill BDRV_O_CREAT
The BDRV_O_CREAT option is unused inside qemu and partially duplicatesthe bdrv_create method. Remove it, and the -C option to qemu-io whichisn't used in qemu-iotests anyway.
qdev: Add help for device properties
When called with property "?", a list of supportedproperties will be printed (instead of an error message).
This is useful for command lines like qemu -device e1000,?and was already standard for other options like model=?...
qdev: Add help for property value
When called with property value "?",a help text will be printed (instead of an error message).
This is useful for command lines like qemu -device e1000,mac=?and is already standard for other command line options....
Documentation: Improve command line help for -device option
Signed-off-by: Stefan Weil <weil@mail.berlios.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Documentation: Add missing texi description for command line options
Some more command line options had entries for command line help,but documentation for texi and derived formats (man, html, info)was missing.
For conditional options, the texi documentation was added...
No need anymoe for bdrv_set_read_only
Signed-off-by: Naphtali Sprei <nsprei@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Ask for read-write permissions when opening files
Found some places that seems needs this explicitly, now thatread-write is not the default.
Read-only device changed to opens it's file for read-only.
QList: Introduce QLIST_FOREACH_ENTRY()
Iterate over QList entries, it's needed to call qlist_entry_obj()to retrieve the stored QObject.
I'm not sure if it's ok to have this, because it's not as easy asqlist_iter() and the QListEntry data type is now exposed to the...
QDict: Introduce qdict_get_qdict()
A helper to retrieve a QDict from a QDict.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
block/cow.c: fix warnings with _FORTIFY_SOURCE
CC block/cow.occ1: warnings being treated as errorsblock/cow.c: In function 'cow_create':block/cow.c:251: error: ignoring return value of 'write', declared with attribute warn_unused_resultblock/cow.c:253: error: ignoring return value of 'ftruncate', declared with attribute warn_unused_result...
block/qcow.c: fix warnings with _FORTIFY_SOURCE
CC block/qcow.occ1: warnings being treated as errorsblock/qcow.c: In function 'qcow_create':block/qcow.c:804: error: ignoring return value of 'write', declared with attribute warn_unused_resultblock/qcow.c:806: error: ignoring return value of 'write', declared with attribute warn_unused_result...
block/vmdk.o: fix warnings with _FORTIFY_SOURCE
CC block/vmdk.occ1: warnings being treated as errorsblock/vmdk.c: In function 'vmdk_snapshot_create':block/vmdk.c:236: error: ignoring return value of 'ftruncate', declared with attribute warn_unused_result...
block/vvfat.c: fix warnings with _FORTIFY_SOURCE
CC block/vvfat.occ1: warnings being treated as errorsblock/vvfat.c: In function 'commit_one_file':block/vvfat.c:2259: error: ignoring return value of 'ftruncate', declared with attribute warn_unused_result...
block/qcow2.c: fix warnings with _FORTIFY_SOURCE
CC block/qcow2.occ1: warnings being treated as errorsblock/qcow2.c: In function 'qcow_create2':block/qcow2.c:829: error: ignoring return value of 'write', declared with attribute warn_unused_resultblock/qcow2.c:838: error: ignoring return value of 'write', declared with attribute warn_unused_result...
net/slirp.c: fix warning with _FORTIFY_SOURCE
CC net/slirp.occ1: warnings being treated as errorsnet/slirp.c: In function 'slirp_smb_cleanup':net/slirp.c:470: error: ignoring return value of 'system', declared with attribute warn_unused_resultmake: *** [net/slirp.o] Error 1...
usb-linux.c: fix warning with _FORTIFY_SOURCE
CC usb-linux.occ1: warnings being treated as errorsusb-linux.c: In function 'usb_host_read_file':usb-linux.c:1204: error: ignoring return value of 'fgets', declared with attribute warn_unused_resultmake: *** [usb-linux.o] Error 1...
vl.c: fix warning with _FORTIFY_SOURCE
CC i386-softmmu/vl.occ1: warnings being treated as errors/usr/src/RPM/BUILD/qemu-0.11.92/vl.c: In function 'qemu_event_increment':/usr/src/RPM/BUILD/qemu-0.11.92/vl.c:3404: error: ignoring return value of 'write', declared with attribute warn_unused_result...
monitor.c: fix warnings with _FORTIFY_SOURCE
CC i386-softmmu/monitor.occ1: warnings being treated as errors/usr/src/RPM/BUILD/qemu-0.11.92/monitor.c: In function 'do_memory_save':/usr/src/RPM/BUILD/qemu-0.11.92/monitor.c:1318: error: ignoring return value of 'fwrite', declared with attribute warn_unused_result...
linux-user/mmap.c: fix warnings with _FORTIFY_SOURCE
CC i386-linux-user/mmap.occ1: warnings being treated as errors/usr/src/RPM/BUILD/qemu-0.11.92/linux-user/mmap.c: In function 'mmap_frag':/usr/src/RPM/BUILD/qemu-0.11.92/linux-user/mmap.c:253: error: ignoring return value of 'pread', declared with attribute warn_unused_result...
check pipe() return value
Signed-off-by: Juan Quintela <quintela@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Enable _FORTIFY_SOURCE=2
_FORTIFY_SOURCE is a Glibc feature which adds memory and string functionprotection.
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>Signed-off-by: Juan Quintela <quintela@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Check availavility of -fstack-protector-all
mmap_frag() users only check for -1 error
qcow2: Fix error handling in qcow2_grow_l1_table
Return the appropriate error value instead of always using EIO. Don't free theL1 table on errors, we still need it.
qcow2: Fix error handling in qcow_save_vmstate
Don't assume success but pass the bdrv_pwrite return value on.
qcow2: Return 0/-errno in get_cluster_table
Switching to 0/-errno allows it to distinguish different error cases.
qcow2: Return 0/-errno in qcow2_alloc_cluster_offset
Returning 0/-errno allows it to distingush different errors classes. Thecluster offset of newly allocated clusters is now returned in the QCowL2Metastruct.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>...
block: Return original error codes in bdrv_pread/write
Don't assume -EIO but return the real error.
qcow2: Fix error handling in grow_refcount_table
Return the appropriate error code instead of -EIO.
qcow2: Improve error handling in update_refcount
If update_refcount fails, try to undo any changes made so far to avoidinconsistencies in the image file.
qcow2: Allow updating no refcounts
There's absolutely no problem with updating the refcounts of 0 clusters.At least snapshot code is doing this and would fail once the result ofupdate_refcount isn't ignored any more.
qcow2: Don't ignore update_refcount return value
update_refcount can return errors that need to be handled by the callers.
qcow2: Don't ignore qcow2_alloc_clusters return value
Now that qcow2_alloc_clusters can return error codes, we must handle them inthe callers of qcow2_alloc_clusters.
Introduce qemu_write_full()
A variant of write(2) which handles partial write.
force to test result for qemu_write_full()
posix-aio-compat.c: fix warning with _FORTIFY_SOURCE
CC posix-aio-compat.occ1: warnings being treated as errorsposix-aio-compat.c: In function 'aio_signal_handler':posix-aio-compat.c:505: error: ignoring return value of 'write', declared with attribute warn_unused_result...
monitor: convert do_physical_memory_save() to QError
QError: New QERR_INVALID_CPU_INDEX
monitor: convert do_cpu_set() to QObject, QError
monitor: Don't check for mon_get_cpu() failure
mon_get_cpu() can't return null pointer, because it passes its returnvalue to cpu_synchronize_state() first, which crashes if its argumentis null.
Remove the (pretty cheesy) handling of this non-existing error....
QError: New QERR_OPEN_FILE_FAILED
monitor: convert do_memory_save() to QError
json: escape u0000 .. u001F when outputting json
Markus Armbruster pointed out:
JSON requires control characters in strings to be escaped. RFC 4627section 2.5:
A string begins and ends with quotation marks. All Unicode characters may be placed within the quotation marks except for the...
Sparc64: fix initrd
Fix HdrS offsets for Sparc64. The initrd address must be offset byKERNBASE.
Use rom_ptr mechanism to actually write to the kernel image.
pflash: Dont open memarea for full IO if already done.
When wcycle is non zero the area is already opened for readable IO.Avoiding the re-registration of the memarea significantly speeds upthe flash emulation. In particular for flashes connected through 8 or...
pflash: Reduce writebuf len for 8-bit flashes.
Flashes connected through an 8 bit bus cannot handle write bufferslarger than 256 bytes.
pflash: Remove dead code, no functional changes.
microblaze: The petalogix s3adsp board uses intel flashes