* [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements @ 2014-03-21 23:42 Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 1/9] slirp: Remove default_mon usage Cole Robinson ` (10 more replies) 0 siblings, 11 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson Minor error API cleanups, and one error reporting improvement when connected to qmp (patch #5) v2: Dropped the error_printf_unless_qmp patch Added the last 4 patches, new cleanups Use error_report instead of fprintf in patch 1 and 2 Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Cole Robinson (9): slirp: Remove default_mon usage vnc: Remove default_mon usage error: Privatize error_print_loc monitor: Remove unused monitor_print_filename error: Print error_report() to stderr if using qmp qerror.h: Remove unused error classes qerror.h: Remove QERR defines that are only used once qerror.h: Replace QERR_NOT_SUPPORTED with QERR_UNSUPPORTED error: Remove some unused headers block/commit.c | 2 +- blockdev.c | 9 ++++-- blockjob.c | 2 +- hw/9pfs/virtio-9p.c | 5 +-- hw/core/qdev-properties.c | 9 +++--- hw/misc/ivshmem.c | 4 +-- include/monitor/monitor.h | 1 - include/qapi/qmp/qerror.h | 79 --------------------------------------------- include/qemu/error-report.h | 1 - monitor.c | 27 ---------------- qapi/qmp-dispatch.c | 3 +- qapi/qmp-input-visitor.c | 2 +- qdev-monitor.c | 12 ++++--- qmp.c | 2 +- qobject/json-parser.c | 2 +- qom/object.c | 5 +-- savevm.c | 3 +- slirp/misc.c | 13 ++------ slirp/slirp.c | 8 ++--- slirp/slirp.h | 2 -- stubs/Makefile.objs | 1 - stubs/arch-query-cpu-def.c | 2 +- stubs/mon-print-filename.c | 6 ---- ui/vnc.c | 4 +-- util/error.c | 5 +-- util/qemu-config.c | 2 +- util/qemu-error.c | 4 +-- util/qemu-option.c | 2 +- 28 files changed, 50 insertions(+), 167 deletions(-) delete mode 100644 stubs/mon-print-filename.c -- 1.8.5.3 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 1/9] slirp: Remove default_mon usage 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 2/9] vnc: " Cole Robinson ` (9 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Jan Kiszka, Cole Robinson These errors don't seem user initiated, so forcibly printing to the monitor doesn't seem right. Just use error_report. Drop lprint since it's now unused. Cc: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- v2: Use error_report instead of fprintf slirp/misc.c | 13 ++----------- slirp/slirp.c | 8 ++++---- slirp/slirp.h | 2 -- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/slirp/misc.c b/slirp/misc.c index 6c1636f..b8eb74c 100644 --- a/slirp/misc.c +++ b/slirp/misc.c @@ -136,7 +136,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) if ((s = qemu_socket(AF_INET, SOCK_STREAM, 0)) < 0 || bind(s, (struct sockaddr *)&addr, addrlen) < 0 || listen(s, 1) < 0) { - lprint("Error: inet socket: %s\n", strerror(errno)); + error_report("Error: inet socket: %s", strerror(errno)); closesocket(s); return 0; @@ -146,7 +146,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) pid = fork(); switch(pid) { case -1: - lprint("Error: fork failed: %s\n", strerror(errno)); + error_report("Error: fork failed: %s", strerror(errno)); close(s); return 0; @@ -242,15 +242,6 @@ strdup(str) } #endif -void lprint(const char *format, ...) -{ - va_list args; - - va_start(args, format); - monitor_vprintf(default_mon, format, args); - va_end(args); -} - void slirp_connection_info(Slirp *slirp, Monitor *mon) { const char * const tcpstates[] = { diff --git a/slirp/slirp.c b/slirp/slirp.c index bad8dad..3fb48a4 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -139,7 +139,7 @@ int get_dns_addr(struct in_addr *pdns_addr) return -1; #ifdef DEBUG - lprint("IP address of your DNS(s): "); + fprintf(stderr, "IP address of your DNS(s): "); #endif while (fgets(buff, 512, f) != NULL) { if (sscanf(buff, "nameserver%*[ \t]%256s", buff2) == 1) { @@ -153,17 +153,17 @@ int get_dns_addr(struct in_addr *pdns_addr) } #ifdef DEBUG else - lprint(", "); + fprintf(stderr, ", "); #endif if (++found > 3) { #ifdef DEBUG - lprint("(more)"); + fprintf(stderr, "(more)"); #endif break; } #ifdef DEBUG else - lprint("%s", inet_ntoa(tmp_addr)); + fprintf(stderr, "%s", inet_ntoa(tmp_addr)); #endif } } diff --git a/slirp/slirp.h b/slirp/slirp.h index e4a1bd4..6589d7e 100644 --- a/slirp/slirp.h +++ b/slirp/slirp.h @@ -287,8 +287,6 @@ void if_start(struct ttys *); long gethostid(void); #endif -void lprint(const char *, ...) GCC_FMT_ATTR(1, 2); - #ifndef _WIN32 #include <netdb.h> #endif -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 2/9] vnc: Remove default_mon usage 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 1/9] slirp: Remove default_mon usage Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 3/9] error: Privatize error_print_loc Cole Robinson ` (8 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson These errors don't seem user initiated, so forcibly printing to the monitor doesn't seem right. Just use error_report. Cc: Anthony Liguori <aliguori@amazon.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- v2: Use error_report instead of fprintf ui/vnc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/vnc.c b/ui/vnc.c index 5925774..2d7def9 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -996,7 +996,7 @@ static void audio_add(VncState *vs) struct audio_capture_ops ops; if (vs->audio_cap) { - monitor_printf(default_mon, "audio already running\n"); + error_report("audio already running"); return; } @@ -1006,7 +1006,7 @@ static void audio_add(VncState *vs) vs->audio_cap = AUD_add_capture(&vs->as, &ops, vs); if (!vs->audio_cap) { - monitor_printf(default_mon, "Failed to add audio capture\n"); + error_report("Failed to add audio capture"); } } -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 3/9] error: Privatize error_print_loc 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 1/9] slirp: Remove default_mon usage Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 2/9] vnc: " Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 4/9] monitor: Remove unused monitor_print_filename Cole Robinson ` (7 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- include/qemu/error-report.h | 1 - util/qemu-error.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h index 3b098a9..000eae3 100644 --- a/include/qemu/error-report.h +++ b/include/qemu/error-report.h @@ -37,7 +37,6 @@ void loc_set_file(const char *fname, int lno); void error_vprintf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); void error_printf(const char *fmt, ...) GCC_FMT_ATTR(1, 2); void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2); -void error_print_loc(void); void error_set_progname(const char *argv0); void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); const char *error_get_progname(void); diff --git a/util/qemu-error.c b/util/qemu-error.c index fec02c6..80df49a 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -165,7 +165,7 @@ const char *error_get_progname(void) /* * Print current location to current monitor if we have one, else to stderr. */ -void error_print_loc(void) +static void error_print_loc(void) { const char *sep = ""; int i; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 4/9] monitor: Remove unused monitor_print_filename 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (2 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 3/9] error: Privatize error_print_loc Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 5/9] error: Print error_report() to stderr if using qmp Cole Robinson ` (6 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- include/monitor/monitor.h | 1 - monitor.c | 27 --------------------------- stubs/Makefile.objs | 1 - stubs/mon-print-filename.c | 6 ------ 4 files changed, 35 deletions(-) delete mode 100644 stubs/mon-print-filename.c diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index a49ea11..42d8671 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -79,7 +79,6 @@ int monitor_handle_fd_param(Monitor *mon, const char *fdname); void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0); void monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3); -void monitor_print_filename(Monitor *mon, const char *filename); void monitor_flush(Monitor *mon); int monitor_set_cpu(int cpu_index); int monitor_get_cpu_index(void); diff --git a/monitor.c b/monitor.c index 342e83b..c8428a1 100644 --- a/monitor.c +++ b/monitor.c @@ -352,33 +352,6 @@ void monitor_printf(Monitor *mon, const char *fmt, ...) va_end(ap); } -void monitor_print_filename(Monitor *mon, const char *filename) -{ - int i; - - for (i = 0; filename[i]; i++) { - switch (filename[i]) { - case ' ': - case '"': - case '\\': - monitor_printf(mon, "\\%c", filename[i]); - break; - case '\t': - monitor_printf(mon, "\\t"); - break; - case '\r': - monitor_printf(mon, "\\r"); - break; - case '\n': - monitor_printf(mon, "\\n"); - break; - default: - monitor_printf(mon, "%c", filename[i]); - break; - } - } -} - static int GCC_FMT_ATTR(2, 3) monitor_fprintf(FILE *stream, const char *fmt, ...) { diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 5ed1d38..d99e2b9 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -14,7 +14,6 @@ stub-obj-y += iothread-lock.o stub-obj-y += migr-blocker.o stub-obj-y += mon-is-qmp.o stub-obj-y += mon-printf.o -stub-obj-y += mon-print-filename.o stub-obj-y += mon-protocol-event.o stub-obj-y += mon-set-error.o stub-obj-y += pci-drive-hot-add.o diff --git a/stubs/mon-print-filename.c b/stubs/mon-print-filename.c deleted file mode 100644 index 9c93964..0000000 --- a/stubs/mon-print-filename.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "qemu-common.h" -#include "monitor/monitor.h" - -void monitor_print_filename(Monitor *mon, const char *filename) -{ -} -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 5/9] error: Print error_report() to stderr if using qmp 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (3 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 4/9] monitor: Remove unused monitor_print_filename Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 6/9] qerror.h: Remove unused error classes Cole Robinson ` (5 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson monitor_printf will drop the requested output if cur_mon is qmp (for good reason). However these messages are often helpful for debugging issues with via libvirt. If we know the message won't hit the monitor, send it to stderr. Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- util/qemu-error.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/qemu-error.c b/util/qemu-error.c index 80df49a..7b167fd 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -20,7 +20,7 @@ */ void error_vprintf(const char *fmt, va_list ap) { - if (cur_mon) { + if (cur_mon && !monitor_cur_is_qmp()) { monitor_vprintf(cur_mon, fmt, ap); } else { vfprintf(stderr, fmt, ap); -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 6/9] qerror.h: Remove unused error classes 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (4 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 5/9] error: Print error_report() to stderr if using qmp Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 7/9] qerror.h: Remove QERR defines that are only used once Cole Robinson ` (4 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- include/qapi/qmp/qerror.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h index da75abf..a72bbc9 100644 --- a/include/qapi/qmp/qerror.h +++ b/include/qapi/qmp/qerror.h @@ -35,9 +35,6 @@ void qerror_report_err(Error *err); * Please keep the definitions in alphabetical order. * Use scripts/check-qerror.sh to check. */ -#define QERR_ADD_CLIENT_FAILED \ - ERROR_CLASS_GENERIC_ERROR, "Could not add client" - #define QERR_AMBIGUOUS_PATH \ ERROR_CLASS_GENERIC_ERROR, "Path '%s' does not uniquely identify an object" @@ -200,9 +197,6 @@ void qerror_report_err(Error *err); #define QERR_QGA_COMMAND_FAILED \ ERROR_CLASS_GENERIC_ERROR, "Guest agent command failed, error was '%s'" -#define QERR_QGA_LOGGING_FAILED \ - ERROR_CLASS_GENERIC_ERROR, "Guest agent failed to log non-optional log statement" - #define QERR_QMP_BAD_INPUT_OBJECT \ ERROR_CLASS_GENERIC_ERROR, "Expected '%s' in QMP input" @@ -218,9 +212,6 @@ void qerror_report_err(Error *err); #define QERR_SET_PASSWD_FAILED \ ERROR_CLASS_GENERIC_ERROR, "Could not set password" -#define QERR_TOO_MANY_FILES \ - ERROR_CLASS_GENERIC_ERROR, "Too many open files" - #define QERR_UNDEFINED_ERROR \ ERROR_CLASS_GENERIC_ERROR, "An undefined error has occurred" -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 7/9] qerror.h: Remove QERR defines that are only used once 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (5 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 6/9] qerror.h: Remove unused error classes Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 8/9] qerror.h: Replace QERR_NOT_SUPPORTED with QERR_UNSUPPORTED Cole Robinson ` (3 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson Just hardcode them in the callers Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- block/commit.c | 2 +- blockdev.c | 9 ++++--- hw/9pfs/virtio-9p.c | 5 ++-- hw/core/qdev-properties.c | 9 ++++--- hw/misc/ivshmem.c | 4 +-- include/qapi/qmp/qerror.h | 66 ----------------------------------------------- qapi/qmp-dispatch.c | 3 ++- qapi/qmp-input-visitor.c | 2 +- qdev-monitor.c | 12 ++++++--- qmp.c | 2 +- qobject/json-parser.c | 2 +- qom/object.c | 5 ++-- savevm.c | 3 ++- util/qemu-config.c | 2 +- util/qemu-option.c | 2 +- 15 files changed, 37 insertions(+), 91 deletions(-) diff --git a/block/commit.c b/block/commit.c index acec4ac..5c09f44 100644 --- a/block/commit.c +++ b/block/commit.c @@ -194,7 +194,7 @@ void commit_start(BlockDriverState *bs, BlockDriverState *base, if ((on_error == BLOCKDEV_ON_ERROR_STOP || on_error == BLOCKDEV_ON_ERROR_ENOSPC) && !bdrv_iostatus_is_enabled(bs)) { - error_set(errp, QERR_INVALID_PARAMETER_COMBINATION); + error_setg(errp, "Invalid parameter combination"); return; } diff --git a/blockdev.c b/blockdev.c index c3422a1..2ccb257 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1521,14 +1521,16 @@ static void eject_device(BlockDriverState *bs, int force, Error **errp) return; } if (!bdrv_dev_has_removable_media(bs)) { - error_set(errp, QERR_DEVICE_NOT_REMOVABLE, bdrv_get_device_name(bs)); + error_setg(errp, "Device '%s' is not removable", + bdrv_get_device_name(bs)); return; } if (bdrv_dev_is_medium_locked(bs) && !bdrv_dev_is_tray_open(bs)) { bdrv_dev_eject_request(bs, force); if (!force) { - error_set(errp, QERR_DEVICE_LOCKED, bdrv_get_device_name(bs)); + error_setg(errp, "Device '%s' is locked", + bdrv_get_device_name(bs)); return; } } @@ -2216,7 +2218,8 @@ void qmp_block_job_cancel(const char *device, return; } if (job->paused && !force) { - error_set(errp, QERR_BLOCK_JOB_PAUSED, device); + error_setg(errp, "The block job for device '%s' is currently paused", + device); return; } diff --git a/hw/9pfs/virtio-9p.c b/hw/9pfs/virtio-9p.c index 83e4e93..9aa6725 100644 --- a/hw/9pfs/virtio-9p.c +++ b/hw/9pfs/virtio-9p.c @@ -987,8 +987,9 @@ static void v9fs_attach(void *opaque) */ if (!s->migration_blocker) { s->root_fid = fid; - error_set(&s->migration_blocker, QERR_VIRTFS_FEATURE_BLOCKS_MIGRATION, - s->ctx.fs_root ? s->ctx.fs_root : "NULL", s->tag); + error_setg(&s->migration_blocker, + "Migration is disabled when VirtFS export path '%s' is mounted in the guest using mount_tag '%s'", + s->ctx.fs_root ? s->ctx.fs_root : "NULL", s->tag); migrate_add_blocker(s->migration_blocker); } out: diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index c67acf5..585a8e9 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -587,8 +587,9 @@ static void set_blocksize(Object *obj, Visitor *v, void *opaque, /* We rely on power-of-2 blocksizes for bitmasks */ if ((value & (value - 1)) != 0) { - error_set(errp, QERR_PROPERTY_VALUE_NOT_POWER_OF_2, - dev->id?:"", name, (int64_t)value); + error_setg(errp, + "Property %s.%s doesn't take value '%" PRId64 "', it's not a power of 2", + dev->id ?: "", name, (int64_t)value); return; } @@ -853,7 +854,7 @@ void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *dev, { switch (ret) { case -EEXIST: - error_set(errp, QERR_PROPERTY_VALUE_IN_USE, + error_setg(errp, "Property '%s.%s' can't take value '%s', it's in use", object_get_typename(OBJECT(dev)), prop->name, value); break; default: @@ -862,7 +863,7 @@ void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *dev, object_get_typename(OBJECT(dev)), prop->name, value); break; case -ENOENT: - error_set(errp, QERR_PROPERTY_VALUE_NOT_FOUND, + error_setg(errp, "Property '%s.%s' can't find value '%s'", object_get_typename(OBJECT(dev)), prop->name, value); break; case 0: diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 8d144ba..768e528 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -684,8 +684,8 @@ static int pci_ivshmem_init(PCIDevice *dev) } if (s->role_val == IVSHMEM_PEER) { - error_set(&s->migration_blocker, QERR_DEVICE_FEATURE_BLOCKS_MIGRATION, - "peer mode", "ivshmem"); + error_setg(&s->migration_blocker, + "Migration is disabled when using feature 'peer mode' in device 'ivshmem'"); migrate_add_blocker(s->migration_blocker); } diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h index a72bbc9..01d1d06 100644 --- a/include/qapi/qmp/qerror.h +++ b/include/qapi/qmp/qerror.h @@ -35,48 +35,30 @@ void qerror_report_err(Error *err); * Please keep the definitions in alphabetical order. * Use scripts/check-qerror.sh to check. */ -#define QERR_AMBIGUOUS_PATH \ - ERROR_CLASS_GENERIC_ERROR, "Path '%s' does not uniquely identify an object" - -#define QERR_BAD_BUS_FOR_DEVICE \ - ERROR_CLASS_GENERIC_ERROR, "Device '%s' can't go on a %s bus" - #define QERR_BASE_NOT_FOUND \ ERROR_CLASS_GENERIC_ERROR, "Base '%s' not found" #define QERR_BLOCK_JOB_NOT_ACTIVE \ ERROR_CLASS_DEVICE_NOT_ACTIVE, "No active block job on device '%s'" -#define QERR_BLOCK_JOB_PAUSED \ - ERROR_CLASS_GENERIC_ERROR, "The block job for device '%s' is currently paused" - #define QERR_BLOCK_JOB_NOT_READY \ ERROR_CLASS_GENERIC_ERROR, "The active block job for device '%s' cannot be completed" #define QERR_BLOCK_FORMAT_FEATURE_NOT_SUPPORTED \ ERROR_CLASS_GENERIC_ERROR, "Block format '%s' used by device '%s' does not support feature '%s'" -#define QERR_BUFFER_OVERRUN \ - ERROR_CLASS_GENERIC_ERROR, "An internal buffer overran" - #define QERR_BUS_NO_HOTPLUG \ ERROR_CLASS_GENERIC_ERROR, "Bus '%s' does not support hotplugging" #define QERR_BUS_NOT_FOUND \ ERROR_CLASS_GENERIC_ERROR, "Bus '%s' not found" -#define QERR_COMMAND_DISABLED \ - ERROR_CLASS_GENERIC_ERROR, "The command %s has been disabled for this instance" - #define QERR_COMMAND_NOT_FOUND \ ERROR_CLASS_COMMAND_NOT_FOUND, "The command %s has not been found" #define QERR_DEVICE_ENCRYPTED \ ERROR_CLASS_DEVICE_ENCRYPTED, "'%s' (%s) is encrypted" -#define QERR_DEVICE_FEATURE_BLOCKS_MIGRATION \ - ERROR_CLASS_GENERIC_ERROR, "Migration is disabled when using feature '%s' in device '%s'" - #define QERR_DEVICE_HAS_NO_MEDIUM \ ERROR_CLASS_GENERIC_ERROR, "Device '%s' has no medium" @@ -89,15 +71,6 @@ void qerror_report_err(Error *err); #define QERR_DEVICE_IS_READ_ONLY \ ERROR_CLASS_GENERIC_ERROR, "Device '%s' is read only" -#define QERR_DEVICE_LOCKED \ - ERROR_CLASS_GENERIC_ERROR, "Device '%s' is locked" - -#define QERR_DEVICE_MULTIPLE_BUSSES \ - ERROR_CLASS_GENERIC_ERROR, "Device '%s' has multiple child busses" - -#define QERR_DEVICE_NO_BUS \ - ERROR_CLASS_GENERIC_ERROR, "Device '%s' has no child bus" - #define QERR_DEVICE_NO_HOTPLUG \ ERROR_CLASS_GENERIC_ERROR, "Device '%s' does not support hotplugging" @@ -110,12 +83,6 @@ void qerror_report_err(Error *err); #define QERR_DEVICE_NOT_FOUND \ ERROR_CLASS_DEVICE_NOT_FOUND, "Device '%s' not found" -#define QERR_DEVICE_NOT_REMOVABLE \ - ERROR_CLASS_GENERIC_ERROR, "Device '%s' is not removable" - -#define QERR_DUPLICATE_ID \ - ERROR_CLASS_GENERIC_ERROR, "Duplicate ID '%s' for %s" - #define QERR_FD_NOT_FOUND \ ERROR_CLASS_GENERIC_ERROR, "File descriptor named '%s' not found" @@ -128,15 +95,9 @@ void qerror_report_err(Error *err); #define QERR_INVALID_BLOCK_FORMAT \ ERROR_CLASS_GENERIC_ERROR, "Invalid block format '%s'" -#define QERR_INVALID_OPTION_GROUP \ - ERROR_CLASS_GENERIC_ERROR, "There is no option group '%s'" - #define QERR_INVALID_PARAMETER \ ERROR_CLASS_GENERIC_ERROR, "Invalid parameter '%s'" -#define QERR_INVALID_PARAMETER_COMBINATION \ - ERROR_CLASS_GENERIC_ERROR, "Invalid parameter combination" - #define QERR_INVALID_PARAMETER_TYPE \ ERROR_CLASS_GENERIC_ERROR, "Invalid parameter type for '%s', expected: %s" @@ -149,9 +110,6 @@ void qerror_report_err(Error *err); #define QERR_IO_ERROR \ ERROR_CLASS_GENERIC_ERROR, "An IO error has occurred" -#define QERR_JSON_PARSE_ERROR \ - ERROR_CLASS_GENERIC_ERROR, "JSON parse error, %s" - #define QERR_JSON_PARSING \ ERROR_CLASS_GENERIC_ERROR, "Invalid JSON syntax" @@ -161,36 +119,18 @@ void qerror_report_err(Error *err); #define QERR_MIGRATION_ACTIVE \ ERROR_CLASS_GENERIC_ERROR, "There's a migration process in progress" -#define QERR_MIGRATION_NOT_SUPPORTED \ - ERROR_CLASS_GENERIC_ERROR, "State blocked by non-migratable device '%s'" - #define QERR_MISSING_PARAMETER \ ERROR_CLASS_GENERIC_ERROR, "Parameter '%s' is missing" -#define QERR_NO_BUS_FOR_DEVICE \ - ERROR_CLASS_GENERIC_ERROR, "No '%s' bus found for device '%s'" - #define QERR_NOT_SUPPORTED \ ERROR_CLASS_GENERIC_ERROR, "Not supported" #define QERR_PERMISSION_DENIED \ ERROR_CLASS_GENERIC_ERROR, "Insufficient permission to perform this operation" -#define QERR_PROPERTY_NOT_FOUND \ - ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' not found" - #define QERR_PROPERTY_VALUE_BAD \ ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' doesn't take value '%s'" -#define QERR_PROPERTY_VALUE_IN_USE \ - ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' can't take value '%s', it's in use" - -#define QERR_PROPERTY_VALUE_NOT_FOUND \ - ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' can't find value '%s'" - -#define QERR_PROPERTY_VALUE_NOT_POWER_OF_2 \ - ERROR_CLASS_GENERIC_ERROR, "Property %s.%s doesn't take value '%" PRId64 "', it's not a power of 2" - #define QERR_PROPERTY_VALUE_OUT_OF_RANGE \ ERROR_CLASS_GENERIC_ERROR, "Property %s.%s doesn't take value %" PRId64 " (minimum: %" PRId64 ", maximum: %" PRId64 ")" @@ -206,9 +146,6 @@ void qerror_report_err(Error *err); #define QERR_QMP_EXTRA_MEMBER \ ERROR_CLASS_GENERIC_ERROR, "QMP input object member '%s' is unexpected" -#define QERR_RESET_REQUIRED \ - ERROR_CLASS_GENERIC_ERROR, "Resetting the Virtual Machine is required" - #define QERR_SET_PASSWD_FAILED \ ERROR_CLASS_GENERIC_ERROR, "Could not set password" @@ -221,9 +158,6 @@ void qerror_report_err(Error *err); #define QERR_UNSUPPORTED \ ERROR_CLASS_GENERIC_ERROR, "this feature or command is not currently supported" -#define QERR_VIRTFS_FEATURE_BLOCKS_MIGRATION \ - ERROR_CLASS_GENERIC_ERROR, "Migration is disabled when VirtFS export path '%s' is mounted in the guest using mount_tag '%s'" - #define QERR_SOCKET_CONNECT_FAILED \ ERROR_CLASS_GENERIC_ERROR, "Failed to connect to socket" diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c index 921de33..9c61449 100644 --- a/qapi/qmp-dispatch.c +++ b/qapi/qmp-dispatch.c @@ -80,7 +80,8 @@ static QObject *do_qmp_dispatch(QObject *request, Error **errp) return NULL; } if (!cmd->enabled) { - error_set(errp, QERR_COMMAND_DISABLED, command); + error_setg(errp, "The command %s has been disabled for this instance", + command); return NULL; } diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c index bf42c04..a2bed1e 100644 --- a/qapi/qmp-input-visitor.c +++ b/qapi/qmp-input-visitor.c @@ -71,7 +71,7 @@ static void qmp_input_push(QmpInputVisitor *qiv, QObject *obj, Error **errp) GHashTable *h; if (qiv->nb_stack >= QIV_STACK_SIZE) { - error_set(errp, QERR_BUFFER_OVERRUN); + error_setg(errp, "An internal buffer overran"); return; } diff --git a/qdev-monitor.c b/qdev-monitor.c index 9268c87..6189780 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -422,12 +422,14 @@ static BusState *qbus_find(const char *path) * one child bus accept it nevertheless */ switch (dev->num_child_bus) { case 0: - qerror_report(QERR_DEVICE_NO_BUS, elem); + qerror_report(ERROR_CLASS_GENERIC_ERROR, + "Device '%s' has no child bus", elem); return NULL; case 1: return QLIST_FIRST(&dev->child_bus); default: - qerror_report(QERR_DEVICE_MULTIPLE_BUSSES, elem); + qerror_report(ERROR_CLASS_GENERIC_ERROR, + "Device '%s' has multiple child busses", elem); if (!monitor_cur_is_qmp()) { qbus_list_bus(dev); } @@ -505,14 +507,16 @@ DeviceState *qdev_device_add(QemuOpts *opts) return NULL; } if (!object_dynamic_cast(OBJECT(bus), dc->bus_type)) { - qerror_report(QERR_BAD_BUS_FOR_DEVICE, + qerror_report(ERROR_CLASS_GENERIC_ERROR, + "Device '%s' can't go on a %s bus", driver, object_get_typename(OBJECT(bus))); return NULL; } } else if (dc->bus_type != NULL) { bus = qbus_find_recursive(sysbus_get_default(), NULL, dc->bus_type); if (!bus) { - qerror_report(QERR_NO_BUS_FOR_DEVICE, + qerror_report(ERROR_CLASS_GENERIC_ERROR, + "No '%s' bus found for device '%s'", dc->bus_type, driver); return NULL; } diff --git a/qmp.c b/qmp.c index 87a28f7..5e2a66c 100644 --- a/qmp.c +++ b/qmp.c @@ -166,7 +166,7 @@ void qmp_cont(Error **errp) Error *local_err = NULL; if (runstate_needs_reset()) { - error_set(errp, QERR_RESET_REQUIRED); + error_setg(errp, "Resetting the Virtual Machine is required"); return; } else if (runstate_check(RUN_STATE_SUSPENDED)) { return; diff --git a/qobject/json-parser.c b/qobject/json-parser.c index e7947b3..e46c264 100644 --- a/qobject/json-parser.c +++ b/qobject/json-parser.c @@ -110,7 +110,7 @@ static void GCC_FMT_ATTR(3, 4) parse_error(JSONParserContext *ctxt, error_free(ctxt->err); ctxt->err = NULL; } - error_set(&ctxt->err, QERR_JSON_PARSE_ERROR, message); + error_setg(&ctxt->err, "JSON parse error, %s", message); } /** diff --git a/qom/object.c b/qom/object.c index f4de619..dd2f91c 100644 --- a/qom/object.c +++ b/qom/object.c @@ -768,7 +768,7 @@ ObjectProperty *object_property_find(Object *obj, const char *name, } } - error_set(errp, QERR_PROPERTY_NOT_FOUND, "", name); + error_setg(errp, "Property '.%s' not found", name); return NULL; } @@ -1075,7 +1075,8 @@ static Object *object_resolve_link(Object *obj, const char *name, target = object_resolve_path_type(path, target_type, &ambiguous); if (ambiguous) { - error_set(errp, QERR_AMBIGUOUS_PATH, path); + error_set(errp, ERROR_CLASS_GENERIC_ERROR, + "Path '%s' does not uniquely identify an object", path); } else if (!target) { target = object_resolve_path(path, &ambiguous); if (target || ambiguous) { diff --git a/savevm.c b/savevm.c index d094fbb..274fa26 100644 --- a/savevm.c +++ b/savevm.c @@ -450,7 +450,8 @@ bool qemu_savevm_state_blocked(Error **errp) QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (se->no_migrate) { - error_set(errp, QERR_MIGRATION_NOT_SUPPORTED, se->idstr); + error_setg(errp, "State blocked by non-migratable device '%s'", + se->idstr); return true; } } diff --git a/util/qemu-config.c b/util/qemu-config.c index f610101..bcf0b86 100644 --- a/util/qemu-config.c +++ b/util/qemu-config.c @@ -20,7 +20,7 @@ static QemuOptsList *find_list(QemuOptsList **lists, const char *group, break; } if (lists[i] == NULL) { - error_set(errp, QERR_INVALID_OPTION_GROUP, group); + error_setg(errp, "There is no option group '%s'", group); } return lists[i]; } diff --git a/util/qemu-option.c b/util/qemu-option.c index 9d898af..8bbc3ad 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -819,7 +819,7 @@ QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id, opts = qemu_opts_find(list, id); if (opts != NULL) { if (fail_if_exists && !list->merge_lists) { - error_set(errp, QERR_DUPLICATE_ID, id, list->name); + error_setg(errp, "Duplicate ID '%s' for %s", id, list->name); return NULL; } else { return opts; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 8/9] qerror.h: Replace QERR_NOT_SUPPORTED with QERR_UNSUPPORTED 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (6 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 7/9] qerror.h: Remove QERR defines that are only used once Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 9/9] error: Remove some unused headers Cole Robinson ` (2 subsequent siblings) 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson The former is only used twice, the latter is used over 30 times, and has a nicer error message. Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- blockjob.c | 2 +- include/qapi/qmp/qerror.h | 3 --- stubs/arch-query-cpu-def.c | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/blockjob.c b/blockjob.c index b3ce14c..cd4784f 100644 --- a/blockjob.c +++ b/blockjob.c @@ -88,7 +88,7 @@ void block_job_set_speed(BlockJob *job, int64_t speed, Error **errp) Error *local_err = NULL; if (!job->driver->set_speed) { - error_set(errp, QERR_NOT_SUPPORTED); + error_set(errp, QERR_UNSUPPORTED); return; } job->driver->set_speed(job, speed, &local_err); diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h index 01d1d06..f5335e6 100644 --- a/include/qapi/qmp/qerror.h +++ b/include/qapi/qmp/qerror.h @@ -122,9 +122,6 @@ void qerror_report_err(Error *err); #define QERR_MISSING_PARAMETER \ ERROR_CLASS_GENERIC_ERROR, "Parameter '%s' is missing" -#define QERR_NOT_SUPPORTED \ - ERROR_CLASS_GENERIC_ERROR, "Not supported" - #define QERR_PERMISSION_DENIED \ ERROR_CLASS_GENERIC_ERROR, "Insufficient permission to perform this operation" diff --git a/stubs/arch-query-cpu-def.c b/stubs/arch-query-cpu-def.c index fa67895..22e0b43 100644 --- a/stubs/arch-query-cpu-def.c +++ b/stubs/arch-query-cpu-def.c @@ -4,6 +4,6 @@ CpuDefinitionInfoList *arch_query_cpu_definitions(Error **errp) { - error_set(errp, QERR_NOT_SUPPORTED); + error_set(errp, QERR_UNSUPPORTED); return NULL; } -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 9/9] error: Remove some unused headers 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (7 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 8/9] qerror.h: Replace QERR_NOT_SUPPORTED with QERR_UNSUPPORTED Cole Robinson @ 2014-03-21 23:42 ` Cole Robinson 2014-03-22 9:06 ` [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Paolo Bonzini 2014-03-27 20:57 ` Luiz Capitulino 10 siblings, 0 replies; 12+ messages in thread From: Cole Robinson @ 2014-03-21 23:42 UTC (permalink / raw) To: qemu-devel; +Cc: Luiz Capitulino, Markus Armbruster, Cole Robinson Makes it a bit clear how the interdependencies work. Cc: Luiz Capitulino <lcapitulino@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com> --- include/qapi/qmp/qerror.h | 1 - util/error.c | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h index f5335e6..902d1a7 100644 --- a/include/qapi/qmp/qerror.h +++ b/include/qapi/qmp/qerror.h @@ -12,7 +12,6 @@ #ifndef QERROR_H #define QERROR_H -#include "qapi/qmp/qdict.h" #include "qapi/qmp/qstring.h" #include "qemu/error-report.h" #include "qapi/error.h" diff --git a/util/error.c b/util/error.c index f11f1d5..2bb42e1 100644 --- a/util/error.c +++ b/util/error.c @@ -12,10 +12,7 @@ #include "qemu-common.h" #include "qapi/error.h" -#include "qapi/qmp/qjson.h" -#include "qapi/qmp/qdict.h" -#include "qapi-types.h" -#include "qapi/qmp/qerror.h" +#include "qemu/error-report.h" struct Error { -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (8 preceding siblings ...) 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 9/9] error: Remove some unused headers Cole Robinson @ 2014-03-22 9:06 ` Paolo Bonzini 2014-03-27 20:57 ` Luiz Capitulino 10 siblings, 0 replies; 12+ messages in thread From: Paolo Bonzini @ 2014-03-22 9:06 UTC (permalink / raw) To: Cole Robinson, qemu-devel; +Cc: Markus Armbruster, Luiz Capitulino Il 22/03/2014 00:42, Cole Robinson ha scritto: > Minor error API cleanups, and one error reporting improvement when > connected to qmp (patch #5) > > v2: > Dropped the error_printf_unless_qmp patch > Added the last 4 patches, new cleanups > Use error_report instead of fprintf in patch 1 and 2 > > Cc: Luiz Capitulino <lcapitulino@redhat.com> > Cc: Markus Armbruster <armbru@redhat.com> > > Cole Robinson (9): > slirp: Remove default_mon usage > vnc: Remove default_mon usage > error: Privatize error_print_loc > monitor: Remove unused monitor_print_filename > error: Print error_report() to stderr if using qmp > qerror.h: Remove unused error classes > qerror.h: Remove QERR defines that are only used once > qerror.h: Replace QERR_NOT_SUPPORTED with QERR_UNSUPPORTED > error: Remove some unused headers > > block/commit.c | 2 +- > blockdev.c | 9 ++++-- > blockjob.c | 2 +- > hw/9pfs/virtio-9p.c | 5 +-- > hw/core/qdev-properties.c | 9 +++--- > hw/misc/ivshmem.c | 4 +-- > include/monitor/monitor.h | 1 - > include/qapi/qmp/qerror.h | 79 --------------------------------------------- > include/qemu/error-report.h | 1 - > monitor.c | 27 ---------------- > qapi/qmp-dispatch.c | 3 +- > qapi/qmp-input-visitor.c | 2 +- > qdev-monitor.c | 12 ++++--- > qmp.c | 2 +- > qobject/json-parser.c | 2 +- > qom/object.c | 5 +-- > savevm.c | 3 +- > slirp/misc.c | 13 ++------ > slirp/slirp.c | 8 ++--- > slirp/slirp.h | 2 -- > stubs/Makefile.objs | 1 - > stubs/arch-query-cpu-def.c | 2 +- > stubs/mon-print-filename.c | 6 ---- > ui/vnc.c | 4 +-- > util/error.c | 5 +-- > util/qemu-config.c | 2 +- > util/qemu-error.c | 4 +-- > util/qemu-option.c | 2 +- > 28 files changed, 50 insertions(+), 167 deletions(-) > delete mode 100644 stubs/mon-print-filename.c > Nice diffstat. :) Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson ` (9 preceding siblings ...) 2014-03-22 9:06 ` [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Paolo Bonzini @ 2014-03-27 20:57 ` Luiz Capitulino 10 siblings, 0 replies; 12+ messages in thread From: Luiz Capitulino @ 2014-03-27 20:57 UTC (permalink / raw) To: Cole Robinson; +Cc: qemu-devel, Markus Armbruster On Fri, 21 Mar 2014 19:42:19 -0400 Cole Robinson <crobinso@redhat.com> wrote: > Minor error API cleanups, and one error reporting improvement when > connected to qmp (patch #5) Applied to the qmp-next branch, very nice cleanup! ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-03-27 21:00 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-03-21 23:42 [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 1/9] slirp: Remove default_mon usage Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 2/9] vnc: " Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 3/9] error: Privatize error_print_loc Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 4/9] monitor: Remove unused monitor_print_filename Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 5/9] error: Print error_report() to stderr if using qmp Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 6/9] qerror.h: Remove unused error classes Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 7/9] qerror.h: Remove QERR defines that are only used once Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 8/9] qerror.h: Replace QERR_NOT_SUPPORTED with QERR_UNSUPPORTED Cole Robinson 2014-03-21 23:42 ` [Qemu-devel] [PATCH v2 9/9] error: Remove some unused headers Cole Robinson 2014-03-22 9:06 ` [Qemu-devel] [PATCH v2 0/9] error: Misc cleanups and improvements Paolo Bonzini 2014-03-27 20:57 ` Luiz Capitulino
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).