[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [qemu-xen master] block/throttle-groups.c: allocate RestartData on the heap
commit 7496699ba63b8690fbd38b232ee41da25fc9d8d7 Author: Manos Pitsidianakis <el13635@xxxxxxxxxxxx> AuthorDate: Mon Sep 18 23:25:29 2017 +0300 Commit: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> CommitDate: Thu Sep 28 16:49:39 2017 -0500 block/throttle-groups.c: allocate RestartData on the heap RestartData is the opaque data of the throttle_group_restart_queue_entry coroutine. By being stack allocated, it isn't available anymore if aio_co_enter schedules the coroutine with a bottom half and runs after throttle_group_restart_queue returns. Cc: qemu-stable@xxxxxxxxxx Signed-off-by: Manos Pitsidianakis <el13635@xxxxxxxxxxxx> Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Reviewed-by: Alberto Garcia <berto@xxxxxxxxxx> Signed-off-by: Kevin Wolf <kwolf@xxxxxxxxxx> (cherry picked from commit 43a5dc02fd6070827d5c4ff652b885219fa8cbe1) Conflicts: block/throttle-groups.c * reworked to avoid functional dep on 022cdc9, since that involves refactoring for a feature not present in 2.10 Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> --- block/throttle-groups.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/block/throttle-groups.c b/block/throttle-groups.c index 890bfde..8f5b445 100644 --- a/block/throttle-groups.c +++ b/block/throttle-groups.c @@ -392,17 +392,19 @@ static void coroutine_fn throttle_group_restart_queue_entry(void *opaque) schedule_next_request(blk, is_write); qemu_mutex_unlock(&tg->lock); } + + g_free(data); } static void throttle_group_restart_queue(BlockBackend *blk, bool is_write) { Coroutine *co; - RestartData rd = { - .blk = blk, - .is_write = is_write - }; + RestartData *rd = g_new0(RestartData, 1); + + rd->blk = blk; + rd->is_write = is_write; - co = qemu_coroutine_create(throttle_group_restart_queue_entry, &rd); + co = qemu_coroutine_create(throttle_group_restart_queue_entry, rd); aio_co_enter(blk_get_aio_context(blk), co); } -- generated by git-patchbot for /home/xen/git/qemu-xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |