From e5a88b0cf3c902d6e9b342a90f0a4a4d5d954f7a Mon Sep 17 00:00:00 2001 From: Gonglei Date: Tue, 28 Apr 2015 17:11:03 +0800 Subject: [PATCH 1/5] xhci: remove unused code Value from xfer->packet.ep is assigned to ep here, but that stored value is not used before it is overwritten. Remove it. Cc: Gerd Hoffmann Signed-off-by: Gonglei Signed-off-by: Michael Tokarev --- hw/usb/hcd-xhci.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index ba15ae0019..99f11fcbb3 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -2204,7 +2204,6 @@ static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid, if (epid == 1) { if (xhci_fire_ctl_transfer(xhci, xfer) >= 0) { epctx->next_xfer = (epctx->next_xfer + 1) % TD_QUEUE; - ep = xfer->packet.ep; } else { DPRINTF("xhci: error firing CTL transfer\n"); } From 973a8529c54f9e4410a0e4a18ca1dcb2b085ca7e Mon Sep 17 00:00:00 2001 From: zhanghailiang Date: Tue, 5 May 2015 09:48:03 +0800 Subject: [PATCH 2/5] sheepdog: fix resource leak with sd_snapshot_create Signed-off-by: zhanghailiang Reviewed-by: Markus Armbruster Signed-off-by: Michael Tokarev --- block/sheepdog.c | 1 + 1 file changed, 1 insertion(+) diff --git a/block/sheepdog.c b/block/sheepdog.c index 2d5f06a390..bd7cbed048 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -2341,6 +2341,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info) if (ret < 0) { error_report("failed to create inode for snapshot: %s", error_get_pretty(local_err)); + error_free(local_err); goto cleanup; } From ac9541579eb95b0b8c93ca58d0a074e1f22cd55a Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Sun, 3 May 2015 10:47:22 +0200 Subject: [PATCH 3/5] Remove various unused functions The functions tpm_backend_thread_tpm_reset() and iothread_find() are completely unused, let's remove them. Signed-off-by: Thomas Huth Reviewed-by: Stefan Hajnoczi Signed-off-by: Michael Tokarev --- backends/tpm.c | 11 ----------- include/sysemu/iothread.h | 1 - include/sysemu/tpm_backend_int.h | 2 -- iothread.c | 12 ------------ 4 files changed, 26 deletions(-) diff --git a/backends/tpm.c b/backends/tpm.c index 4efe36736e..36c5d46f0a 100644 --- a/backends/tpm.c +++ b/backends/tpm.c @@ -165,17 +165,6 @@ void tpm_backend_thread_end(TPMBackendThread *tbt) } } -void tpm_backend_thread_tpm_reset(TPMBackendThread *tbt, - GFunc func, gpointer user_data) -{ - if (!tbt->pool) { - tpm_backend_thread_create(tbt, func, user_data); - } else { - g_thread_pool_push(tbt->pool, (gpointer)TPM_BACKEND_CMD_TPM_RESET, - NULL); - } -} - static const TypeInfo tpm_backend_info = { .name = TYPE_TPM_BACKEND, .parent = TYPE_OBJECT, diff --git a/include/sysemu/iothread.h b/include/sysemu/iothread.h index 7c01a61d5e..2eefea1cc2 100644 --- a/include/sysemu/iothread.h +++ b/include/sysemu/iothread.h @@ -33,7 +33,6 @@ typedef struct { #define IOTHREAD(obj) \ OBJECT_CHECK(IOThread, obj, TYPE_IOTHREAD) -IOThread *iothread_find(const char *id); char *iothread_get_id(IOThread *iothread); AioContext *iothread_get_aio_context(IOThread *iothread); diff --git a/include/sysemu/tpm_backend_int.h b/include/sysemu/tpm_backend_int.h index 05d94d0f5b..40f693a0cc 100644 --- a/include/sysemu/tpm_backend_int.h +++ b/include/sysemu/tpm_backend_int.h @@ -32,8 +32,6 @@ void tpm_backend_thread_deliver_request(TPMBackendThread *tbt); void tpm_backend_thread_create(TPMBackendThread *tbt, GFunc func, gpointer user_data); void tpm_backend_thread_end(TPMBackendThread *tbt); -void tpm_backend_thread_tpm_reset(TPMBackendThread *tbt, - GFunc func, gpointer user_data); typedef enum TPMBackendCmd { TPM_BACKEND_CMD_INIT = 1, diff --git a/iothread.c b/iothread.c index a1f91099bc..0416fc4268 100644 --- a/iothread.c +++ b/iothread.c @@ -114,18 +114,6 @@ static void iothread_register_types(void) type_init(iothread_register_types) -IOThread *iothread_find(const char *id) -{ - Object *container = container_get(object_get_root(), IOTHREADS_PATH); - Object *child; - - child = object_property_get_link(container, id, NULL); - if (!child) { - return NULL; - } - return (IOThread *)object_dynamic_cast(child, TYPE_IOTHREAD); -} - char *iothread_get_id(IOThread *iothread) { return object_get_canonical_path_component(OBJECT(iothread)); From f20f2a1f339b99f5b840367236ddce9d9736247c Mon Sep 17 00:00:00 2001 From: Michael Tokarev Date: Thu, 7 May 2015 13:38:02 +0300 Subject: [PATCH 4/5] glib-compat.h: change assert to g_assert include/glib-compat.h defines a bunch of functions based on glib primitives, and uses assert() without including assert.h. Replace assert() with g_assert() to make the file more self-contained, and to fix compilation breakage after 28507a415a9b1e. Reported-by: Laurent Desnogues Signed-off-by: Michael Tokarev Tested-by: Laurent Desnogues --- include/glib-compat.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/glib-compat.h b/include/glib-compat.h index 011352b2b6..28d9f15bd3 100644 --- a/include/glib-compat.h +++ b/include/glib-compat.h @@ -115,7 +115,7 @@ static inline void g_mutex_init(CompatGMutex *mutex) static inline void g_mutex_clear(CompatGMutex *mutex) { - assert(mutex->once.status != G_ONCE_STATUS_PROGRESS); + g_assert(mutex->once.status != G_ONCE_STATUS_PROGRESS); if (mutex->once.retval) { g_mutex_free((GMutex *) mutex->once.retval); } @@ -155,7 +155,7 @@ static inline void g_cond_init(CompatGCond *cond) static inline void g_cond_clear(CompatGCond *cond) { - assert(cond->once.status != G_ONCE_STATUS_PROGRESS); + g_assert(cond->once.status != G_ONCE_STATUS_PROGRESS); if (cond->once.retval) { g_cond_free((GCond *) cond->once.retval); } @@ -164,7 +164,7 @@ static inline void g_cond_clear(CompatGCond *cond) static inline void (g_cond_wait)(CompatGCond *cond, CompatGMutex *mutex) { - assert(mutex->once.status != G_ONCE_STATUS_PROGRESS); + g_assert(mutex->once.status != G_ONCE_STATUS_PROGRESS); g_once(&cond->once, do_g_cond_new, NULL); g_cond_wait((GCond *) cond->once.retval, (GMutex *) mutex->once.retval); } From 0caef8f6df4a9426bd6333ab843ce51ce005d7d0 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Date: Thu, 7 May 2015 17:58:26 +0300 Subject: [PATCH 5/5] docs: update BLOCK_IMAGE_CORRUPTED documentation Label the "size" and "offset" fields in BLOCK_IMAGE_CORRUPTED as optional, and clarify that the latter refers to the host's offset into the image. Signed-off-by: Alberto Garcia Reviewed-by: Eric Blake Signed-off-by: Michael Tokarev --- docs/qmp/qmp-events.txt | 5 +++-- qapi/block-core.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/qmp/qmp-events.txt b/docs/qmp/qmp-events.txt index b19e490eb5..64ba46c769 100644 --- a/docs/qmp/qmp-events.txt +++ b/docs/qmp/qmp-events.txt @@ -43,9 +43,10 @@ Data: - "msg": Informative message (e.g., reason for the corruption) (json-string) - "offset": If the corruption resulted from an image access, this - is the access offset into the image (json-int) + is the host's access offset into the image + (json-int, optional) - "size": If the corruption resulted from an image access, this - is the access size (json-int) + is the access size (json-int, optional) Example: diff --git a/qapi/block-core.json b/qapi/block-core.json index dcf7c04ffa..863ffea0c7 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -1847,7 +1847,7 @@ # not guaranteed to be stable # # @offset: #optional, if the corruption resulted from an image access, this is -# the access offset into the image +# the host's access offset into the image # # @size: #optional, if the corruption resulted from an image access, this is # the access size