* [Qemu-devel] [PULL 0/8] Block patches @ 2019-05-10 13:02 Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 1/8] util/readline: add a space to fix errors by checkpatch tool Stefan Hajnoczi ` (8 more replies) 0 siblings, 9 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, qemu-block, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf The following changes since commit 812b835fb4d23dd108b2f9802158472d50b73579: Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-05-07' into staging (2019-05-09 16:31:12 +0100) are available in the Git repository at: https://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to e84125761f78919fe63616d9888ea45e72dc956f: docs: add Security chapter to the documentation (2019-05-10 10:53:52 +0100) ---------------------------------------------------------------- Pull request ---------------------------------------------------------------- Andrey Shinkevich (1): block/io.c: fix for the allocation failure Jules Irenge (3): util/readline: add a space to fix errors by checkpatch tool util: readline: replace tab indent by four spaces to fix checkpatch errors util/readline: Add braces to fix checkpatch errors Nikita Alekseev (1): block: Add coroutine_fn to bdrv_check_co_entry Paolo Bonzini (1): aio-posix: ensure poll mode is left when aio_notify is called Stefan Hajnoczi (2): docs: add Secure Coding Practices to developer docs docs: add Security chapter to the documentation Makefile | 2 +- block.c | 2 +- block/io.c | 2 +- util/aio-posix.c | 12 +- util/readline.c | 174 ++++++++++++++----------- docs/devel/index.rst | 1 + docs/devel/secure-coding-practices.rst | 106 +++++++++++++++ docs/security.texi | 131 +++++++++++++++++++ qemu-doc.texi | 3 + 9 files changed, 347 insertions(+), 86 deletions(-) create mode 100644 docs/devel/secure-coding-practices.rst create mode 100644 docs/security.texi -- 2.21.0 ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 1/8] util/readline: add a space to fix errors by checkpatch tool 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 2/8] util: readline: replace tab indent by four spaces to fix checkpatch errors Stefan Hajnoczi ` (7 subsequent siblings) 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, Jules Irenge, qemu-block, Thomas Huth, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf From: Jules Irenge <jbi.octave@gmail.com> util/readline: add a space to fix errors reported by checkpatch.pl tool "ERROR: space required before the open parenthesis" "ERROR: space required after that ..." within "util/redline.c" file Signed-off-by: Jules Irenge <jbi.octave@gmail.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-id: 20190401024406.10819-2-jbi.octave@gmail.com Message-Id: <20190401024406.10819-2-jbi.octave@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- util/readline.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/util/readline.c b/util/readline.c index ec91ee0fea..db399d3948 100644 --- a/util/readline.c +++ b/util/readline.c @@ -48,13 +48,13 @@ static void readline_update(ReadLineState *rs) if (rs->cmd_buf_size != rs->last_cmd_buf_size || memcmp(rs->cmd_buf, rs->last_cmd_buf, rs->cmd_buf_size) != 0) { - for(i = 0; i < rs->last_cmd_buf_index; i++) { + for (i = 0; i < rs->last_cmd_buf_index; i++) { rs->printf_func(rs->opaque, "\033[D"); } rs->cmd_buf[rs->cmd_buf_size] = '\0'; if (rs->read_password) { len = strlen(rs->cmd_buf); - for(i = 0; i < len; i++) + for (i = 0; i < len; i++) rs->printf_func(rs->opaque, "*"); } else { rs->printf_func(rs->opaque, "%s", rs->cmd_buf); @@ -67,12 +67,12 @@ static void readline_update(ReadLineState *rs) if (rs->cmd_buf_index != rs->last_cmd_buf_index) { delta = rs->cmd_buf_index - rs->last_cmd_buf_index; if (delta > 0) { - for(i = 0;i < delta; i++) { + for (i = 0; i < delta; i++) { rs->printf_func(rs->opaque, "\033[C"); } } else { delta = -delta; - for(i = 0;i < delta; i++) { + for (i = 0; i < delta; i++) { rs->printf_func(rs->opaque, "\033[D"); } } @@ -301,7 +301,7 @@ static void readline_completion(ReadLineState *rs) return; if (rs->nb_completions == 1) { len = strlen(rs->completions[0]); - for(i = rs->completion_index; i < len; i++) { + for (i = rs->completion_index; i < len; i++) { readline_insert_char(rs, rs->completions[0][i]); } /* extra space for next argument. XXX: make it more generic */ @@ -312,15 +312,15 @@ static void readline_completion(ReadLineState *rs) completion_comp); rs->printf_func(rs->opaque, "\n"); max_width = 0; - max_prefix = 0; - for(i = 0; i < rs->nb_completions; i++) { + max_prefix = 0; + for (i = 0; i < rs->nb_completions; i++) { len = strlen(rs->completions[i]); - if (i==0) { + if (i == 0) { max_prefix = len; } else { if (len < max_prefix) max_prefix = len; - for(j=0; j<max_prefix; j++) { + for (j = 0; j < max_prefix; j++) { if (rs->completions[i][j] != rs->completions[0][j]) max_prefix = j; } @@ -328,8 +328,8 @@ static void readline_completion(ReadLineState *rs) if (len > max_width) max_width = len; } - if (max_prefix > 0) - for(i = rs->completion_index; i < max_prefix; i++) { + if (max_prefix > 0) + for (i = rs->completion_index; i < max_prefix; i++) { readline_insert_char(rs, rs->completions[0][i]); } max_width += 2; @@ -339,7 +339,7 @@ static void readline_completion(ReadLineState *rs) max_width = 80; nb_cols = 80 / max_width; j = 0; - for(i = 0; i < rs->nb_completions; i++) { + for (i = 0; i < rs->nb_completions; i++) { rs->printf_func(rs->opaque, "%-*s", max_width, rs->completions[i]); if (++j == nb_cols || i == (rs->nb_completions - 1)) { rs->printf_func(rs->opaque, "\n"); @@ -362,9 +362,9 @@ static void readline_clear_screen(ReadLineState *rs) /* return true if command handled */ void readline_handle_byte(ReadLineState *rs, int ch) { - switch(rs->esc_state) { + switch (rs->esc_state) { case IS_NORM: - switch(ch) { + switch (ch) { case 1: readline_bol(rs); break; @@ -425,7 +425,7 @@ void readline_handle_byte(ReadLineState *rs, int ch) } break; case IS_CSI: - switch(ch) { + switch (ch) { case 'A': case 'F': readline_up_char(rs); @@ -444,7 +444,7 @@ void readline_handle_byte(ReadLineState *rs, int ch) rs->esc_param = rs->esc_param * 10 + (ch - '0'); goto the_end; case '~': - switch(rs->esc_param) { + switch (rs->esc_param) { case 1: readline_bol(rs); break; @@ -463,7 +463,7 @@ void readline_handle_byte(ReadLineState *rs, int ch) the_end: break; case IS_SS3: - switch(ch) { + switch (ch) { case 'F': readline_eol(rs); break; -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 2/8] util: readline: replace tab indent by four spaces to fix checkpatch errors 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 1/8] util/readline: add a space to fix errors by checkpatch tool Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 3/8] util/readline: Add braces " Stefan Hajnoczi ` (6 subsequent siblings) 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, Jules Irenge, qemu-block, Thomas Huth, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf From: Jules Irenge <jbi.octave@gmail.com> Replace tab indent by four spaces to fix errors issued by checkpatch.pl tool "ERROR: code indent should never use tabs" within "util/readline.c" file. Signed-off-by: Jules Irenge <jbi.octave@gmail.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-id: 20190401024406.10819-3-jbi.octave@gmail.com Message-Id: <20190401024406.10819-3-jbi.octave@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- util/readline.c | 98 ++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/util/readline.c b/util/readline.c index db399d3948..3eb5a66dfc 100644 --- a/util/readline.c +++ b/util/readline.c @@ -179,20 +179,20 @@ static void readline_up_char(ReadLineState *rs) int idx; if (rs->hist_entry == 0) - return; + return; if (rs->hist_entry == -1) { - /* Find latest entry */ - for (idx = 0; idx < READLINE_MAX_CMDS; idx++) { - if (rs->history[idx] == NULL) - break; - } - rs->hist_entry = idx; + /* Find latest entry */ + for (idx = 0; idx < READLINE_MAX_CMDS; idx++) { + if (rs->history[idx] == NULL) + break; + } + rs->hist_entry = idx; } rs->hist_entry--; if (rs->hist_entry >= 0) { - pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), + pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), rs->history[rs->hist_entry]); - rs->cmd_buf_index = rs->cmd_buf_size = strlen(rs->cmd_buf); + rs->cmd_buf_index = rs->cmd_buf_size = strlen(rs->cmd_buf); } } @@ -202,11 +202,11 @@ static void readline_down_char(ReadLineState *rs) return; if (rs->hist_entry < READLINE_MAX_CMDS - 1 && rs->history[++rs->hist_entry] != NULL) { - pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), + pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), rs->history[rs->hist_entry]); } else { rs->cmd_buf[0] = 0; - rs->hist_entry = -1; + rs->hist_entry = -1; } rs->cmd_buf_index = rs->cmd_buf_size = strlen(rs->cmd_buf); } @@ -217,42 +217,42 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline) int idx; if (cmdline[0] == '\0') - return; + return; new_entry = NULL; if (rs->hist_entry != -1) { - /* We were editing an existing history entry: replace it */ - hist_entry = rs->history[rs->hist_entry]; - idx = rs->hist_entry; - if (strcmp(hist_entry, cmdline) == 0) { - goto same_entry; - } + /* We were editing an existing history entry: replace it */ + hist_entry = rs->history[rs->hist_entry]; + idx = rs->hist_entry; + if (strcmp(hist_entry, cmdline) == 0) { + goto same_entry; + } } /* Search cmdline in history buffers */ for (idx = 0; idx < READLINE_MAX_CMDS; idx++) { - hist_entry = rs->history[idx]; - if (hist_entry == NULL) - break; - if (strcmp(hist_entry, cmdline) == 0) { - same_entry: - new_entry = hist_entry; - /* Put this entry at the end of history */ - memmove(&rs->history[idx], &rs->history[idx + 1], - (READLINE_MAX_CMDS - (idx + 1)) * sizeof(char *)); - rs->history[READLINE_MAX_CMDS - 1] = NULL; - for (; idx < READLINE_MAX_CMDS; idx++) { - if (rs->history[idx] == NULL) - break; - } - break; - } + hist_entry = rs->history[idx]; + if (hist_entry == NULL) + break; + if (strcmp(hist_entry, cmdline) == 0) { + same_entry: + new_entry = hist_entry; + /* Put this entry at the end of history */ + memmove(&rs->history[idx], &rs->history[idx + 1], + (READLINE_MAX_CMDS - (idx + 1)) * sizeof(char *)); + rs->history[READLINE_MAX_CMDS - 1] = NULL; + for (; idx < READLINE_MAX_CMDS; idx++) { + if (rs->history[idx] == NULL) + break; + } + break; + } } if (idx == READLINE_MAX_CMDS) { - /* Need to get one free slot */ + /* Need to get one free slot */ g_free(rs->history[0]); - memmove(rs->history, &rs->history[1], - (READLINE_MAX_CMDS - 1) * sizeof(char *)); - rs->history[READLINE_MAX_CMDS - 1] = NULL; - idx = READLINE_MAX_CMDS - 1; + memmove(rs->history, &rs->history[1], + (READLINE_MAX_CMDS - 1) * sizeof(char *)); + rs->history[READLINE_MAX_CMDS - 1] = NULL; + idx = READLINE_MAX_CMDS - 1; } if (new_entry == NULL) new_entry = g_strdup(cmdline); @@ -403,9 +403,9 @@ void readline_handle_byte(ReadLineState *rs, int ch) case 8: readline_backspace(rs); break; - case 155: + case 155: rs->esc_state = IS_CSI; - break; + break; default: if (ch >= 32) { readline_insert_char(rs, ch); @@ -426,14 +426,14 @@ void readline_handle_byte(ReadLineState *rs, int ch) break; case IS_CSI: switch (ch) { - case 'A': - case 'F': - readline_up_char(rs); - break; - case 'B': - case 'E': - readline_down_char(rs); - break; + case 'A': + case 'F': + readline_up_char(rs); + break; + case 'B': + case 'E': + readline_down_char(rs); + break; case 'D': readline_backward_char(rs); break; -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 3/8] util/readline: Add braces to fix checkpatch errors 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 1/8] util/readline: add a space to fix errors by checkpatch tool Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 2/8] util: readline: replace tab indent by four spaces to fix checkpatch errors Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 4/8] block: Add coroutine_fn to bdrv_check_co_entry Stefan Hajnoczi ` (5 subsequent siblings) 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, Jules Irenge, qemu-block, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf From: Jules Irenge <jbi.octave@gmail.com> Add braces to fix errors issued by checkpatch.pl tool "ERROR: braces {} are necessary for all arms of this statement" Within "util/readline.c" file Message-Id: <20190330112142.14082-1-jbi.octave@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- util/readline.c | 50 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/util/readline.c b/util/readline.c index 3eb5a66dfc..a7672b51c1 100644 --- a/util/readline.c +++ b/util/readline.c @@ -54,8 +54,9 @@ static void readline_update(ReadLineState *rs) rs->cmd_buf[rs->cmd_buf_size] = '\0'; if (rs->read_password) { len = strlen(rs->cmd_buf); - for (i = 0; i < len; i++) + for (i = 0; i < len; i++) { rs->printf_func(rs->opaque, "*"); + } } else { rs->printf_func(rs->opaque, "%s", rs->cmd_buf); } @@ -178,13 +179,15 @@ static void readline_up_char(ReadLineState *rs) { int idx; - if (rs->hist_entry == 0) + if (rs->hist_entry == 0) { return; + } if (rs->hist_entry == -1) { /* Find latest entry */ for (idx = 0; idx < READLINE_MAX_CMDS; idx++) { - if (rs->history[idx] == NULL) + if (rs->history[idx] == NULL) { break; + } } rs->hist_entry = idx; } @@ -198,8 +201,9 @@ static void readline_up_char(ReadLineState *rs) static void readline_down_char(ReadLineState *rs) { - if (rs->hist_entry == -1) + if (rs->hist_entry == -1) { return; + } if (rs->hist_entry < READLINE_MAX_CMDS - 1 && rs->history[++rs->hist_entry] != NULL) { pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), @@ -216,8 +220,9 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline) char *hist_entry, *new_entry; int idx; - if (cmdline[0] == '\0') + if (cmdline[0] == '\0') { return; + } new_entry = NULL; if (rs->hist_entry != -1) { /* We were editing an existing history entry: replace it */ @@ -230,8 +235,9 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline) /* Search cmdline in history buffers */ for (idx = 0; idx < READLINE_MAX_CMDS; idx++) { hist_entry = rs->history[idx]; - if (hist_entry == NULL) + if (hist_entry == NULL) { break; + } if (strcmp(hist_entry, cmdline) == 0) { same_entry: new_entry = hist_entry; @@ -240,8 +246,9 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline) (READLINE_MAX_CMDS - (idx + 1)) * sizeof(char *)); rs->history[READLINE_MAX_CMDS - 1] = NULL; for (; idx < READLINE_MAX_CMDS; idx++) { - if (rs->history[idx] == NULL) + if (rs->history[idx] == NULL) { break; + } } break; } @@ -254,8 +261,9 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline) rs->history[READLINE_MAX_CMDS - 1] = NULL; idx = READLINE_MAX_CMDS - 1; } - if (new_entry == NULL) + if (new_entry == NULL) { new_entry = g_strdup(cmdline); + } rs->history[idx] = new_entry; rs->hist_entry = -1; } @@ -297,16 +305,18 @@ static void readline_completion(ReadLineState *rs) g_free(cmdline); /* no completion found */ - if (rs->nb_completions <= 0) + if (rs->nb_completions <= 0) { return; + } if (rs->nb_completions == 1) { len = strlen(rs->completions[0]); for (i = rs->completion_index; i < len; i++) { readline_insert_char(rs, rs->completions[0][i]); } /* extra space for next argument. XXX: make it more generic */ - if (len > 0 && rs->completions[0][len - 1] != '/') + if (len > 0 && rs->completions[0][len - 1] != '/') { readline_insert_char(rs, ' '); + } } else { qsort(rs->completions, rs->nb_completions, sizeof(char *), completion_comp); @@ -318,25 +328,29 @@ static void readline_completion(ReadLineState *rs) if (i == 0) { max_prefix = len; } else { - if (len < max_prefix) + if (len < max_prefix) { max_prefix = len; + } for (j = 0; j < max_prefix; j++) { - if (rs->completions[i][j] != rs->completions[0][j]) + if (rs->completions[i][j] != rs->completions[0][j]) { max_prefix = j; + } } } - if (len > max_width) + if (len > max_width) { max_width = len; + } } if (max_prefix > 0) for (i = rs->completion_index; i < max_prefix; i++) { readline_insert_char(rs, rs->completions[0][i]); } max_width += 2; - if (max_width < 10) + if (max_width < 10) { max_width = 10; - else if (max_width > 80) + } else if (max_width > 80) { max_width = 80; + } nb_cols = 80 / max_width; j = 0; for (i = 0; i < rs->nb_completions; i++) { @@ -383,8 +397,9 @@ void readline_handle_byte(ReadLineState *rs, int ch) case 10: case 13: rs->cmd_buf[rs->cmd_buf_size] = '\0'; - if (!rs->read_password) + if (!rs->read_password) { readline_hist_add(rs, rs->cmd_buf); + } rs->printf_func(rs->opaque, "\n"); rs->cmd_buf_index = 0; rs->cmd_buf_size = 0; @@ -495,8 +510,9 @@ void readline_restart(ReadLineState *rs) const char *readline_get_history(ReadLineState *rs, unsigned int index) { - if (index >= READLINE_MAX_CMDS) + if (index >= READLINE_MAX_CMDS) { return NULL; + } return rs->history[index]; } -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 4/8] block: Add coroutine_fn to bdrv_check_co_entry 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi ` (2 preceding siblings ...) 2019-05-10 13:02 ` [Qemu-devel] [PULL 3/8] util/readline: Add braces " Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 5/8] block/io.c: fix for the allocation failure Stefan Hajnoczi ` (4 subsequent siblings) 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, qemu-block, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf, Nikita Alekseev From: Nikita Alekseev <n.alekseev2104@gmail.com> bdrv_check_co_entry calls bdrv_co_check, which is a coroutine function. Thus, it also needs to be marked as a coroutine. Signed-off-by: Nikita Alekseev <n.alekseev2104@gmail.com> Message-id: 20190401093051.16488-1-n.alekseev2104@gmail.com Message-Id: <20190401093051.16488-1-n.alekseev2104@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- block.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block.c b/block.c index 7dc8fe289a..5c2c6aa761 100644 --- a/block.c +++ b/block.c @@ -4121,7 +4121,7 @@ typedef struct CheckCo { int ret; } CheckCo; -static void bdrv_check_co_entry(void *opaque) +static void coroutine_fn bdrv_check_co_entry(void *opaque) { CheckCo *cco = opaque; cco->ret = bdrv_co_check(cco->bs, cco->res, cco->fix); -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 5/8] block/io.c: fix for the allocation failure 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi ` (3 preceding siblings ...) 2019-05-10 13:02 ` [Qemu-devel] [PULL 4/8] block: Add coroutine_fn to bdrv_check_co_entry Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 6/8] aio-posix: ensure poll mode is left when aio_notify is called Stefan Hajnoczi ` (3 subsequent siblings) 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, qemu-block, Denis V . Lunev, Max Reitz, Andrey Shinkevich, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf, John Snow From: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> On a file system used by the customer, fallocate() returns an error if the block is not properly aligned. So, bdrv_co_pwrite_zeroes() fails. We can handle that case the same way as it is done for the unsupported cases, namely, call to bdrv_driver_pwritev() that writes zeroes to an image for the unaligned chunk of the block. Suggested-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-id: 1554474244-553661-1-git-send-email-andrey.shinkevich@virtuozzo.com Message-Id: <1554474244-553661-1-git-send-email-andrey.shinkevich@virtuozzo.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- block/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/io.c b/block/io.c index dfc153b8d8..0412a51314 100644 --- a/block/io.c +++ b/block/io.c @@ -1516,7 +1516,7 @@ static int coroutine_fn bdrv_co_do_pwrite_zeroes(BlockDriverState *bs, assert(!bs->supported_zero_flags); } - if (ret == -ENOTSUP && !(flags & BDRV_REQ_NO_FALLBACK)) { + if (ret < 0 && !(flags & BDRV_REQ_NO_FALLBACK)) { /* Fall back to bounce buffer if write zeroes is unsupported */ BdrvRequestFlags write_flags = flags & ~BDRV_REQ_ZERO_WRITE; -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 6/8] aio-posix: ensure poll mode is left when aio_notify is called 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi ` (4 preceding siblings ...) 2019-05-10 13:02 ` [Qemu-devel] [PULL 5/8] block/io.c: fix for the allocation failure Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 7/8] docs: add Secure Coding Practices to developer docs Stefan Hajnoczi ` (2 subsequent siblings) 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, Sergio Lopez, qemu-block, Stefan Hajnoczi, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf From: Paolo Bonzini <pbonzini@redhat.com> With aio=thread, adaptive polling makes latency worse rather than better, because it delays the execution of the ThreadPool's completion bottom half. event_notifier_poll() does run while polling, detecting that a bottom half was scheduled by a worker thread, but because ctx->notifier is explicitly ignored in run_poll_handlers_once(), scheduling the BH does not count as making progress and run_poll_handlers() keeps running. Fix this by recomputing the deadline after *timeout could have changed. With this change, ThreadPool still cannot participate in polling but at least it does not suffer from extra latency. Reported-by: Sergio Lopez <slp@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 20190409122823.12416-1-pbonzini@redhat.com Cc: Stefan Hajnoczi <stefanha@gmail.com> Cc: Kevin Wolf <kwolf@redhat.com> Cc: qemu-block@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1553692145-86728-1-git-send-email-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20190409122823.12416-1-pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- util/aio-posix.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/util/aio-posix.c b/util/aio-posix.c index 6fbfa7924f..db11021287 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -519,6 +519,10 @@ static bool run_poll_handlers_once(AioContext *ctx, int64_t *timeout) if (!node->deleted && node->io_poll && aio_node_check(ctx, node->is_external) && node->io_poll(node->opaque)) { + /* + * Polling was successful, exit try_poll_mode immediately + * to adjust the next polling time. + */ *timeout = 0; if (node->opaque != &ctx->notifier) { progress = true; @@ -558,8 +562,9 @@ static bool run_poll_handlers(AioContext *ctx, int64_t max_ns, int64_t *timeout) do { progress = run_poll_handlers_once(ctx, timeout); elapsed_time = qemu_clock_get_ns(QEMU_CLOCK_REALTIME) - start_time; - } while (!progress && elapsed_time < max_ns - && !atomic_read(&ctx->poll_disable_cnt)); + max_ns = qemu_soonest_timeout(*timeout, max_ns); + assert(!(max_ns && progress)); + } while (elapsed_time < max_ns && !atomic_read(&ctx->poll_disable_cnt)); /* If time has passed with no successful polling, adjust *timeout to * keep the same ending time. @@ -585,8 +590,7 @@ static bool run_poll_handlers(AioContext *ctx, int64_t max_ns, int64_t *timeout) */ static bool try_poll_mode(AioContext *ctx, int64_t *timeout) { - /* See qemu_soonest_timeout() uint64_t hack */ - int64_t max_ns = MIN((uint64_t)*timeout, (uint64_t)ctx->poll_ns); + int64_t max_ns = qemu_soonest_timeout(*timeout, ctx->poll_ns); if (max_ns && !atomic_read(&ctx->poll_disable_cnt)) { poll_set_started(ctx, true); -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 7/8] docs: add Secure Coding Practices to developer docs 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi ` (5 preceding siblings ...) 2019-05-10 13:02 ` [Qemu-devel] [PULL 6/8] aio-posix: ensure poll mode is left when aio_notify is called Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 8/8] docs: add Security chapter to the documentation Stefan Hajnoczi 2019-05-10 14:24 ` [Qemu-devel] [PULL 0/8] Block patches Peter Maydell 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, Daniel P . Berrangé, qemu-block, Philippe Mathieu-Daudé, Li Qiang, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf, Alex Bennée, Stefano Garzarella At KVM Forum 2018 I gave a presentation on security in QEMU: https://www.youtube.com/watch?v=YAdRf_hwxU8 (video) https://vmsplice.net/~stefan/stefanha-kvm-forum-2018.pdf (slides) This patch adds a guide to secure coding practices. This document covers things that developers should know about security in QEMU. It is just a starting point that we can expand on later. I hope it will be useful as a resource for new contributors and will save code reviewers from explaining the same concepts many times. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> Message-id: 20190509121820.16294-2-stefanha@redhat.com Message-Id: <20190509121820.16294-2-stefanha@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- docs/devel/index.rst | 1 + docs/devel/secure-coding-practices.rst | 106 +++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 docs/devel/secure-coding-practices.rst diff --git a/docs/devel/index.rst b/docs/devel/index.rst index ebbab636ce..2a4ddf40ad 100644 --- a/docs/devel/index.rst +++ b/docs/devel/index.rst @@ -20,3 +20,4 @@ Contents: stable-process testing decodetree + secure-coding-practices diff --git a/docs/devel/secure-coding-practices.rst b/docs/devel/secure-coding-practices.rst new file mode 100644 index 0000000000..cbfc8af67e --- /dev/null +++ b/docs/devel/secure-coding-practices.rst @@ -0,0 +1,106 @@ +======================= +Secure Coding Practices +======================= +This document covers topics that both developers and security researchers must +be aware of so that they can develop safe code and audit existing code +properly. + +Reporting Security Bugs +----------------------- +For details on how to report security bugs or ask questions about potential +security bugs, see the `Security Process wiki page +<https://wiki.qemu.org/SecurityProcess>`_. + +General Secure C Coding Practices +--------------------------------- +Most CVEs (security bugs) reported against QEMU are not specific to +virtualization or emulation. They are simply C programming bugs. Therefore +it's critical to be aware of common classes of security bugs. + +There is a wide selection of resources available covering secure C coding. For +example, the `CERT C Coding Standard +<https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard>`_ +covers the most important classes of security bugs. + +Instead of describing them in detail here, only the names of the most important +classes of security bugs are mentioned: + +* Buffer overflows +* Use-after-free and double-free +* Integer overflows +* Format string vulnerabilities + +Some of these classes of bugs can be detected by analyzers. Static analysis is +performed regularly by Coverity and the most obvious of these bugs are even +reported by compilers. Dynamic analysis is possible with valgrind, tsan, and +asan. + +Input Validation +---------------- +Inputs from the guest or external sources (e.g. network, files) cannot be +trusted and may be invalid. Inputs must be checked before using them in a way +that could crash the program, expose host memory to the guest, or otherwise be +exploitable by an attacker. + +The most sensitive attack surface is device emulation. All hardware register +accesses and data read from guest memory must be validated. A typical example +is a device that contains multiple units that are selectable by the guest via +an index register:: + + typedef struct { + ProcessingUnit unit[2]; + ... + } MyDeviceState; + + static void mydev_writel(void *opaque, uint32_t addr, uint32_t val) + { + MyDeviceState *mydev = opaque; + ProcessingUnit *unit; + + switch (addr) { + case MYDEV_SELECT_UNIT: + unit = &mydev->unit[val]; <-- this input wasn't validated! + ... + } + } + +If ``val`` is not in range [0, 1] then an out-of-bounds memory access will take +place when ``unit`` is dereferenced. The code must check that ``val`` is 0 or +1 and handle the case where it is invalid. + +Unexpected Device Accesses +-------------------------- +The guest may access device registers in unusual orders or at unexpected +moments. Device emulation code must not assume that the guest follows the +typical "theory of operation" presented in driver writer manuals. The guest +may make nonsense accesses to device registers such as starting operations +before the device has been fully initialized. + +A related issue is that device emulation code must be prepared for unexpected +device register accesses while asynchronous operations are in progress. A +well-behaved guest might wait for a completion interrupt before accessing +certain device registers. Device emulation code must handle the case where the +guest overwrites registers or submits further requests before an ongoing +request completes. Unexpected accesses must not cause memory corruption or +leaks in QEMU. + +Invalid device register accesses can be reported with +``qemu_log_mask(LOG_GUEST_ERROR, ...)``. The ``-d guest_errors`` command-line +option enables these log messages. + +Live Migration +-------------- +Device state can be saved to disk image files and shared with other users. +Live migration code must validate inputs when loading device state so an +attacker cannot gain control by crafting invalid device states. Device state +is therefore considered untrusted even though it is typically generated by QEMU +itself. + +Guest Memory Access Races +------------------------- +Guests with multiple vCPUs may modify guest RAM while device emulation code is +running. Device emulation code must copy in descriptors and other guest RAM +structures and only process the local copy. This prevents +time-of-check-to-time-of-use (TOCTOU) race conditions that could cause QEMU to +crash when a vCPU thread modifies guest RAM while device emulation is +processing it. -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 8/8] docs: add Security chapter to the documentation 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi ` (6 preceding siblings ...) 2019-05-10 13:02 ` [Qemu-devel] [PULL 7/8] docs: add Secure Coding Practices to developer docs Stefan Hajnoczi @ 2019-05-10 13:02 ` Stefan Hajnoczi 2019-05-10 14:24 ` [Qemu-devel] [PULL 0/8] Block patches Peter Maydell 8 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2019-05-10 13:02 UTC (permalink / raw) To: qemu-devel Cc: Fam Zheng, Peter Maydell, Daniel P . Berrangé, qemu-block, Philippe Mathieu-Daudé, Li Qiang, Max Reitz, Stefan Hajnoczi, Paolo Bonzini, Kevin Wolf, Alex Bennée, Stefano Garzarella This new chapter in the QEMU documentation covers the security requirements that QEMU is designed to meet and principles for securely deploying QEMU. It is just a starting point that can be extended in the future with more information. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> Message-id: 20190509121820.16294-3-stefanha@redhat.com Message-Id: <20190509121820.16294-3-stefanha@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- Makefile | 2 +- docs/security.texi | 131 +++++++++++++++++++++++++++++++++++++++++++++ qemu-doc.texi | 3 ++ 3 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 docs/security.texi diff --git a/Makefile b/Makefile index a971247cac..4a8ae0ef95 100644 --- a/Makefile +++ b/Makefile @@ -976,7 +976,7 @@ qemu-doc.html qemu-doc.info qemu-doc.pdf qemu-doc.txt: \ qemu-img.texi qemu-nbd.texi qemu-options.texi qemu-option-trace.texi \ qemu-deprecated.texi qemu-monitor.texi qemu-img-cmds.texi qemu-ga.texi \ qemu-monitor-info.texi docs/qemu-block-drivers.texi \ - docs/qemu-cpu-models.texi + docs/qemu-cpu-models.texi docs/security.texi docs/interop/qemu-ga-ref.dvi docs/interop/qemu-ga-ref.html \ docs/interop/qemu-ga-ref.info docs/interop/qemu-ga-ref.pdf \ diff --git a/docs/security.texi b/docs/security.texi new file mode 100644 index 0000000000..927764f1e6 --- /dev/null +++ b/docs/security.texi @@ -0,0 +1,131 @@ +@node Security +@chapter Security + +@section Overview + +This chapter explains the security requirements that QEMU is designed to meet +and principles for securely deploying QEMU. + +@section Security Requirements + +QEMU supports many different use cases, some of which have stricter security +requirements than others. The community has agreed on the overall security +requirements that users may depend on. These requirements define what is +considered supported from a security perspective. + +@subsection Virtualization Use Case + +The virtualization use case covers cloud and virtual private server (VPS) +hosting, as well as traditional data center and desktop virtualization. These +use cases rely on hardware virtualization extensions to execute guest code +safely on the physical CPU at close-to-native speed. + +The following entities are untrusted, meaning that they may be buggy or +malicious: + +@itemize +@item Guest +@item User-facing interfaces (e.g. VNC, SPICE, WebSocket) +@item Network protocols (e.g. NBD, live migration) +@item User-supplied files (e.g. disk images, kernels, device trees) +@item Passthrough devices (e.g. PCI, USB) +@end itemize + +Bugs affecting these entities are evaluated on whether they can cause damage in +real-world use cases and treated as security bugs if this is the case. + +@subsection Non-virtualization Use Case + +The non-virtualization use case covers emulation using the Tiny Code Generator +(TCG). In principle the TCG and device emulation code used in conjunction with +the non-virtualization use case should meet the same security requirements as +the virtualization use case. However, for historical reasons much of the +non-virtualization use case code was not written with these security +requirements in mind. + +Bugs affecting the non-virtualization use case are not considered security +bugs at this time. Users with non-virtualization use cases must not rely on +QEMU to provide guest isolation or any security guarantees. + +@section Architecture + +This section describes the design principles that ensure the security +requirements are met. + +@subsection Guest Isolation + +Guest isolation is the confinement of guest code to the virtual machine. When +guest code gains control of execution on the host this is called escaping the +virtual machine. Isolation also includes resource limits such as throttling of +CPU, memory, disk, or network. Guests must be unable to exceed their resource +limits. + +QEMU presents an attack surface to the guest in the form of emulated devices. +The guest must not be able to gain control of QEMU. Bugs in emulated devices +could allow malicious guests to gain code execution in QEMU. At this point the +guest has escaped the virtual machine and is able to act in the context of the +QEMU process on the host. + +Guests often interact with other guests and share resources with them. A +malicious guest must not gain control of other guests or access their data. +Disk image files and network traffic must be protected from other guests unless +explicitly shared between them by the user. + +@subsection Principle of Least Privilege + +The principle of least privilege states that each component only has access to +the privileges necessary for its function. In the case of QEMU this means that +each process only has access to resources belonging to the guest. + +The QEMU process should not have access to any resources that are inaccessible +to the guest. This way the guest does not gain anything by escaping into the +QEMU process since it already has access to those same resources from within +the guest. + +Following the principle of least privilege immediately fulfills guest isolation +requirements. For example, guest A only has access to its own disk image file +@code{a.img} and not guest B's disk image file @code{b.img}. + +In reality certain resources are inaccessible to the guest but must be +available to QEMU to perform its function. For example, host system calls are +necessary for QEMU but are not exposed to guests. A guest that escapes into +the QEMU process can then begin invoking host system calls. + +New features must be designed to follow the principle of least privilege. +Should this not be possible for technical reasons, the security risk must be +clearly documented so users are aware of the trade-off of enabling the feature. + +@subsection Isolation mechanisms + +Several isolation mechanisms are available to realize this architecture of +guest isolation and the principle of least privilege. With the exception of +Linux seccomp, these mechanisms are all deployed by management tools that +launch QEMU, such as libvirt. They are also platform-specific so they are only +described briefly for Linux here. + +The fundamental isolation mechanism is that QEMU processes must run as +unprivileged users. Sometimes it seems more convenient to launch QEMU as +root to give it access to host devices (e.g. @code{/dev/net/tun}) but this poses a +huge security risk. File descriptor passing can be used to give an otherwise +unprivileged QEMU process access to host devices without running QEMU as root. +It is also possible to launch QEMU as a non-root user and configure UNIX groups +for access to @code{/dev/kvm}, @code{/dev/net/tun}, and other device nodes. +Some Linux distros already ship with UNIX groups for these devices by default. + +@itemize +@item SELinux and AppArmor make it possible to confine processes beyond the +traditional UNIX process and file permissions model. They restrict the QEMU +process from accessing processes and files on the host system that are not +needed by QEMU. + +@item Resource limits and cgroup controllers provide throughput and utilization +limits on key resources such as CPU time, memory, and I/O bandwidth. + +@item Linux namespaces can be used to make process, file system, and other system +resources unavailable to QEMU. A namespaced QEMU process is restricted to only +those resources that were granted to it. + +@item Linux seccomp is available via the QEMU @option{--sandbox} option. It disables +system calls that are not needed by QEMU, thereby reducing the host kernel +attack surface. +@end itemize diff --git a/qemu-doc.texi b/qemu-doc.texi index ae3c3f9632..577d1e8376 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -38,6 +38,7 @@ * QEMU Guest Agent:: * QEMU User space emulator:: * System requirements:: +* Security:: * Implementation notes:: * Deprecated features:: * Supported build platforms:: @@ -2878,6 +2879,8 @@ added with Linux 4.5 which is supported by the major distros. And even if RHEL7 has kernel 3.10, KVM there has the required functionality there to make it close to a 4.5 or newer kernel. +@include docs/security.texi + @include qemu-tech.texi @include qemu-deprecated.texi -- 2.21.0 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi ` (7 preceding siblings ...) 2019-05-10 13:02 ` [Qemu-devel] [PULL 8/8] docs: add Security chapter to the documentation Stefan Hajnoczi @ 2019-05-10 14:24 ` Peter Maydell 8 siblings, 0 replies; 31+ messages in thread From: Peter Maydell @ 2019-05-10 14:24 UTC (permalink / raw) To: Stefan Hajnoczi Cc: Fam Zheng, Kevin Wolf, Qemu-block, QEMU Developers, Max Reitz, Paolo Bonzini On Fri, 10 May 2019 at 14:02, Stefan Hajnoczi <stefanha@redhat.com> wrote: > > The following changes since commit 812b835fb4d23dd108b2f9802158472d50b73579: > > Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-05-07' into staging (2019-05-09 16:31:12 +0100) > > are available in the Git repository at: > > https://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to e84125761f78919fe63616d9888ea45e72dc956f: > > docs: add Security chapter to the documentation (2019-05-10 10:53:52 +0100) > > ---------------------------------------------------------------- > Pull request > > ---------------------------------------------------------------- Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1 for any user-visible changes. -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2019-06-21 13:23 Max Reitz 2019-06-23 17:18 ` Peter Maydell 0 siblings, 1 reply; 31+ messages in thread From: Max Reitz @ 2019-06-21 13:23 UTC (permalink / raw) To: qemu-block; +Cc: Kevin Wolf, Peter Maydell, qemu-devel, Max Reitz The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1: Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100) are available in the Git repository at: https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21 for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472: iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200) ---------------------------------------------------------------- Block patches: - The SSH block driver now uses libssh instead of libssh2 - The VMDK block driver gets read-only support for the seSparse subformat - Various fixes ---------------------------------------------------------------- Anton Nefedov (1): iotest 134: test cluster-misaligned encrypted write Klaus Birkelund Jensen (1): nvme: do not advertise support for unsupported arbitration mechanism Max Reitz (1): iotests: Fix 205 for concurrent runs Pino Toscano (1): ssh: switch from libssh2 to libssh Sam Eiderman (3): vmdk: Fix comment regarding max l1_size coverage vmdk: Reduce the max bound for L1 table size vmdk: Add read-only support for seSparse snapshots Vladimir Sementsov-Ogievskiy (1): blockdev: enable non-root nodes for transaction drive-backup source configure | 65 +- block/Makefile.objs | 6 +- block/ssh.c | 673 ++++++++++-------- block/vmdk.c | 372 +++++++++- blockdev.c | 2 +- hw/block/nvme.c | 1 - .travis.yml | 4 +- block/trace-events | 14 +- docs/qemu-block-drivers.texi | 2 +- .../dockerfiles/debian-win32-cross.docker | 1 - .../dockerfiles/debian-win64-cross.docker | 1 - tests/docker/dockerfiles/fedora.docker | 4 +- tests/docker/dockerfiles/ubuntu.docker | 2 +- tests/docker/dockerfiles/ubuntu1804.docker | 2 +- tests/qemu-iotests/059.out | 2 +- tests/qemu-iotests/134 | 9 + tests/qemu-iotests/134.out | 10 + tests/qemu-iotests/205 | 2 +- tests/qemu-iotests/207 | 54 +- tests/qemu-iotests/207.out | 2 +- 20 files changed, 844 insertions(+), 384 deletions(-) -- 2.21.0 ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2019-06-21 13:23 Max Reitz @ 2019-06-23 17:18 ` Peter Maydell 2019-06-24 12:20 ` Max Reitz 0 siblings, 1 reply; 31+ messages in thread From: Peter Maydell @ 2019-06-23 17:18 UTC (permalink / raw) To: Max Reitz; +Cc: Kevin Wolf, QEMU Developers, Qemu-block On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote: > > The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1: > > Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100) > > are available in the Git repository at: > > https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21 > > for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472: > > iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200) > > ---------------------------------------------------------------- > Block patches: > - The SSH block driver now uses libssh instead of libssh2 > - The VMDK block driver gets read-only support for the seSparse > subformat > - Various fixes > Hi; this failed to build on my s390 box: /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’: /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of function ‘ssh_get_fingerprint_hash’ [-Werror=implicit-function-declaration] fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, ^ /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs] fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, ^ /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer from integer without a cast [-Werror=int-conversion] fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, ^ It looks like that function was introduced in libssh 0.8.3, and this box has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8 but this usage is inside a bit of code that's compiled even when that is not defined.) thanks -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2019-06-23 17:18 ` Peter Maydell @ 2019-06-24 12:20 ` Max Reitz 2019-06-24 13:15 ` Pino Toscano 0 siblings, 1 reply; 31+ messages in thread From: Max Reitz @ 2019-06-24 12:20 UTC (permalink / raw) To: Peter Maydell; +Cc: Kevin Wolf, QEMU Developers, Qemu-block, Pino Toscano [-- Attachment #1.1: Type: text/plain, Size: 2093 bytes --] On 23.06.19 19:18, Peter Maydell wrote: > On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote: >> >> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1: >> >> Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100) >> >> are available in the Git repository at: >> >> https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21 >> >> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472: >> >> iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200) >> >> ---------------------------------------------------------------- >> Block patches: >> - The SSH block driver now uses libssh instead of libssh2 >> - The VMDK block driver gets read-only support for the seSparse >> subformat >> - Various fixes >> > > Hi; this failed to build on my s390 box: > > /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’: > /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of > function ‘ssh_get_fingerprint_hash’ > [-Werror=implicit-function-declaration] > fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, > ^ > /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration > of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs] > fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, > ^ > /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer > from integer without a cast [-Werror=int-conversion] > fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, > ^ > > It looks like that function was introduced in libssh 0.8.3, and this box > has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8 > but this usage is inside a bit of code that's compiled even when > that is not defined.) Pino, would you be OK with dropping that piece of code for pre-0.8 and just replacing it with the else-error_setg()? Max [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2019-06-24 12:20 ` Max Reitz @ 2019-06-24 13:15 ` Pino Toscano 2019-06-24 14:49 ` Max Reitz 0 siblings, 1 reply; 31+ messages in thread From: Pino Toscano @ 2019-06-24 13:15 UTC (permalink / raw) To: Max Reitz; +Cc: Kevin Wolf, Peter Maydell, QEMU Developers, Qemu-block [-- Attachment #1.1: Type: text/plain, Size: 2519 bytes --] On Monday, 24 June 2019 14:20:11 CEST Max Reitz wrote: > On 23.06.19 19:18, Peter Maydell wrote: > > On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote: > >> > >> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1: > >> > >> Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100) > >> > >> are available in the Git repository at: > >> > >> https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21 > >> > >> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472: > >> > >> iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200) > >> > >> ---------------------------------------------------------------- > >> Block patches: > >> - The SSH block driver now uses libssh instead of libssh2 > >> - The VMDK block driver gets read-only support for the seSparse > >> subformat > >> - Various fixes > >> > > > > Hi; this failed to build on my s390 box: > > > > /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’: > > /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of > > function ‘ssh_get_fingerprint_hash’ > > [-Werror=implicit-function-declaration] > > fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, > > ^ > > /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration > > of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs] > > fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, > > ^ > > /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer > > from integer without a cast [-Werror=int-conversion] > > fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, > > ^ > > > > It looks like that function was introduced in libssh 0.8.3, and this box > > has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8 > > but this usage is inside a bit of code that's compiled even when > > that is not defined.) Oops, sorry, I did not test the latest versions with that old libssh. > Pino, would you be OK with dropping that piece of code for pre-0.8 and > just replacing it with the else-error_setg()? Some the variables in check_host_key_knownhosts must be moved within the HAVE_LIBSSH_0_8 block now; attached fixup patch, please squash with my patch (I can submit a v12, if needed/wanted). -- Pino Toscano [-- Attachment #1.2: fixup.diff --] [-- Type: text/x-patch, Size: 2209 bytes --] diff --git a/block/ssh.c b/block/ssh.c index 048d0cc924..501933b855 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -277,14 +277,14 @@ static void ssh_parse_filename(const char *filename, QDict *options, static int check_host_key_knownhosts(BDRVSSHState *s, Error **errp) { int ret; +#ifdef HAVE_LIBSSH_0_8 + enum ssh_known_hosts_e state; int r; ssh_key pubkey; enum ssh_keytypes_e pubkey_type; unsigned char *server_hash = NULL; size_t server_hash_len; char *fingerprint = NULL; -#ifdef HAVE_LIBSSH_0_8 - enum ssh_known_hosts_e state; state = ssh_session_is_known_server(s->session); trace_ssh_server_status(state); @@ -356,30 +356,9 @@ static int check_host_key_knownhosts(BDRVSSHState *s, Error **errp) break; case SSH_SERVER_KNOWN_CHANGED: ret = -EINVAL; - r = ssh_get_publickey(s->session, &pubkey); - if (r == 0) { - r = ssh_get_publickey_hash(pubkey, SSH_PUBLICKEY_HASH_SHA1, - &server_hash, &server_hash_len); - pubkey_type = ssh_key_type(pubkey); - ssh_key_free(pubkey); - } - if (r == 0) { - fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, - server_hash, - server_hash_len); - ssh_clean_pubkey_hash(&server_hash); - } - if (fingerprint) { - error_setg(errp, - "host key (%s key with fingerprint %s) does not match " - "the one in known_hosts; this may be a possible attack", - ssh_key_type_to_char(pubkey_type), fingerprint); - ssh_string_free_char(fingerprint); - } else { - error_setg(errp, - "host key does not match the one in known_hosts; this " - "may be a possible attack"); - } + error_setg(errp, + "host key does not match the one in known_hosts; this " + "may be a possible attack"); goto out; case SSH_SERVER_FOUND_OTHER: ret = -EINVAL; [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2019-06-24 13:15 ` Pino Toscano @ 2019-06-24 14:49 ` Max Reitz 0 siblings, 0 replies; 31+ messages in thread From: Max Reitz @ 2019-06-24 14:49 UTC (permalink / raw) To: Pino Toscano; +Cc: Kevin Wolf, Peter Maydell, QEMU Developers, Qemu-block [-- Attachment #1.1: Type: text/plain, Size: 2635 bytes --] On 24.06.19 15:15, Pino Toscano wrote: > On Monday, 24 June 2019 14:20:11 CEST Max Reitz wrote: >> On 23.06.19 19:18, Peter Maydell wrote: >>> On Fri, 21 Jun 2019 at 14:23, Max Reitz <mreitz@redhat.com> wrote: >>>> >>>> The following changes since commit 33d609990621dea6c7d056c86f707b8811320ac1: >>>> >>>> Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2019-06-18 17:00:52 +0100) >>>> >>>> are available in the Git repository at: >>>> >>>> https://github.com/XanClic/qemu.git tags/pull-block-2019-06-21 >>>> >>>> for you to fetch changes up to e2a76186f7948b8b75d1b2b52638de7c2f7f7472: >>>> >>>> iotests: Fix 205 for concurrent runs (2019-06-21 14:40:28 +0200) >>>> >>>> ---------------------------------------------------------------- >>>> Block patches: >>>> - The SSH block driver now uses libssh instead of libssh2 >>>> - The VMDK block driver gets read-only support for the seSparse >>>> subformat >>>> - Various fixes >>>> >>> >>> Hi; this failed to build on my s390 box: >>> >>> /home/linux1/qemu/block/ssh.c: In function ‘check_host_key_knownhosts’: >>> /home/linux1/qemu/block/ssh.c:367:27: error: implicit declaration of >>> function ‘ssh_get_fingerprint_hash’ >>> [-Werror=implicit-function-declaration] >>> fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, >>> ^ >>> /home/linux1/qemu/block/ssh.c:367:13: error: nested extern declaration >>> of ‘ssh_get_fingerprint_hash’ [-Werror=nested-externs] >>> fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, >>> ^ >>> /home/linux1/qemu/block/ssh.c:367:25: error: assignment makes pointer >>> from integer without a cast [-Werror=int-conversion] >>> fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA1, >>> ^ >>> >>> It looks like that function was introduced in libssh 0.8.3, and this box >>> has 0.6.3. (configure has correctly not defined HAVE_LIBSSH_0_8 >>> but this usage is inside a bit of code that's compiled even when >>> that is not defined.) > > Oops, sorry, I did not test the latest versions with that old libssh. > >> Pino, would you be OK with dropping that piece of code for pre-0.8 and >> just replacing it with the else-error_setg()? > > Some the variables in check_host_key_knownhosts must be moved within > the HAVE_LIBSSH_0_8 block now; attached fixup patch, please squash with > my patch (I can submit a v12, if needed/wanted). Thanks, I’ve squashed it in and sent a v2 for this pull request. Max [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2018-05-12 9:28 Stefan Hajnoczi 2018-05-12 9:42 ` no-reply ` (2 more replies) 0 siblings, 3 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2018-05-12 9:28 UTC (permalink / raw) To: qemu-devel; +Cc: qemu-block, Peter Maydell The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544: Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100) are available in the Git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9: block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100) ---------------------------------------------------------------- Block pull request * Support -drive cache.direct=off live migration for POSIX files ---------------------------------------------------------------- Joe Perches (4): checkpatch: add a --strict check for utf-8 in commit logs checkpatch: ignore email headers better checkpatch: emit a warning on file add/move/delete checkpatch: reduce MAINTAINERS update message frequency Pasi Savanainen (1): checkpatch: check utf-8 content from a commit log when it's missing from charset Stefan Hajnoczi (3): blockjob: drop block_job_pause/resume_all() block/file-posix: implement bdrv_co_invalidate_cache() on Linux block/file-posix: add x-check-page-cache=on|off option qapi/block-core.json | 7 +- include/block/blockjob_int.h | 14 ---- block/file-posix.c | 146 ++++++++++++++++++++++++++++++++++- blockjob.c | 27 ------- scripts/checkpatch.pl | 56 +++++++++++++- 5 files changed, 202 insertions(+), 48 deletions(-) -- 2.17.0 ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2018-05-12 9:28 Stefan Hajnoczi @ 2018-05-12 9:42 ` no-reply 2018-05-14 13:15 ` Peter Maydell 2018-05-14 17:53 ` Peter Maydell 2 siblings, 0 replies; 31+ messages in thread From: no-reply @ 2018-05-12 9:42 UTC (permalink / raw) To: stefanha; +Cc: famz, qemu-devel, peter.maydell, qemu-block Hi, This series seems to have some coding style problems. See output below for more information: Type: series Message-id: 20180512092824.13848-1-stefanha@redhat.com Subject: [Qemu-devel] [PULL 0/8] Block patches === TEST SCRIPT BEGIN === #!/bin/bash BASE=base n=1 total=$(git log --oneline $BASE.. | wc -l) failed=0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram commits="$(git log --format=%H --reverse $BASE..)" for c in $commits; do echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..." if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then failed=1 echo fi n=$((n+1)) done exit $failed === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 From https://github.com/patchew-project/qemu * [new tag] patchew/20180512092824.13848-1-stefanha@redhat.com -> patchew/20180512092824.13848-1-stefanha@redhat.com t [tag update] patchew/cover.1526081108.git.alistair.francis@wdc.com -> patchew/cover.1526081108.git.alistair.francis@wdc.com Switched to a new branch 'test' a35067253e block/file-posix: add x-check-page-cache=on|off option c6c991d81f block/file-posix: implement bdrv_co_invalidate_cache() on Linux 3b9d04939d checkpatch: reduce MAINTAINERS update message frequency 92c27dd7e6 checkpatch: emit a warning on file add/move/delete 82e1381f3f checkpatch: ignore email headers better 63d8deac11 checkpatch: check utf-8 content from a commit log when it's missing from charset 7ecaae4f83 checkpatch: add a --strict check for utf-8 in commit logs ca525fa2f4 blockjob: drop block_job_pause/resume_all() === OUTPUT BEGIN === Checking PATCH 1/8: blockjob: drop block_job_pause/resume_all()... Checking PATCH 2/8: checkpatch: add a --strict check for utf-8 in commit logs... WARNING: line over 80 characters #109: FILE: scripts/checkpatch.pl:1420: + WARN("8-bit UTF-8 used in possible commit log\n" . $herecurr); total: 0 errors, 1 warnings, 66 lines checked Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. Checking PATCH 3/8: checkpatch: check utf-8 content from a commit log when it's missing from charset... Checking PATCH 4/8: checkpatch: ignore email headers better... Checking PATCH 5/8: checkpatch: emit a warning on file add/move/delete... WARNING: line over 80 characters #51: FILE: scripts/checkpatch.pl:1397: + ($line =~ /\{\s*([\w\/\.\-]*)\s*\=\>\s*([\w\/\.\-]*)\s*\}/ && ERROR: line over 90 characters #54: FILE: scripts/checkpatch.pl:1400: + WARN("added, moved or deleted file(s), does MAINTAINERS need updating?\n" . $herecurr); total: 1 errors, 1 warnings, 24 lines checked Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. Checking PATCH 6/8: checkpatch: reduce MAINTAINERS update message frequency... Checking PATCH 7/8: block/file-posix: implement bdrv_co_invalidate_cache() on Linux... WARNING: architecture specific defines should be avoided #52: FILE: block/file-posix.c:2255: +#if defined(__linux__) total: 0 errors, 1 warnings, 70 lines checked Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. Checking PATCH 8/8: block/file-posix: add x-check-page-cache=on|off option... WARNING: line over 80 characters #47: FILE: block/file-posix.c:423: + .help = "check that page cache was dropped on live migration (default: off)" WARNING: architecture specific defines should be avoided #120: FILE: block/file-posix.c:2264: +#if defined(__linux__) total: 0 errors, 2 warnings, 185 lines checked Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. === OUTPUT END === Test command exited with code: 1 --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@redhat.com ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2018-05-12 9:28 Stefan Hajnoczi 2018-05-12 9:42 ` no-reply @ 2018-05-14 13:15 ` Peter Maydell 2018-05-14 16:02 ` Peter Maydell 2018-05-14 17:53 ` Peter Maydell 2 siblings, 1 reply; 31+ messages in thread From: Peter Maydell @ 2018-05-14 13:15 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block On 12 May 2018 at 10:28, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544: > > Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100) > > are available in the Git repository at: > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9: > > block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100) > > ---------------------------------------------------------------- > Block pull request > > * Support -drive cache.direct=off live migration for POSIX files > > ---------------------------------------------------------------- With this I get test failures for x86-64 Linux host (debug enabled): MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} gtester -k --verbose -m=quick tests/test-replication TEST: tests/test-replication... (pid=15016) /replication/primary/read: OK /replication/primary/write: OK /replication/primary/start: OK /replication/primary/stop: OK /replication/primary/do_checkpoint: OK /replication/primary/get_error_all: OK /replication/secondary/read: ** ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write: assertion failed: (async_ret == 0) FAIL GTester: last random seed: R02Sf99d81651223b2fcdd0d7d601245eba3 (pid=15131) /replication/secondary/write: OK /replication/secondary/start: ** ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write: assertion failed: (async_ret == 0) FAIL GTester: last random seed: R02S3e753c59c58d385aa2ea07c974c2e384 (pid=15309) /replication/secondary/stop: ** ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write: assertion failed: (async_ret == 0) FAIL GTester: last random seed: R02Sb6a8459edfa78efa369da3920846afa7 (pid=15439) /replication/secondary/do_checkpoint: ** ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write: assertion failed: (async_ret == 0) FAIL GTester: last random seed: R02S4b2e6aa4e33bba4c5bdea0b9073ee966 (pid=15580) /replication/secondary/get_error_all: OK FAIL: tests/test-replication /home/petmay01/linaro/qemu-for-merges/tests/Makefile.include:892: recipe for target 'check-tests/test-replication' failed thanks -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2018-05-14 13:15 ` Peter Maydell @ 2018-05-14 16:02 ` Peter Maydell 0 siblings, 0 replies; 31+ messages in thread From: Peter Maydell @ 2018-05-14 16:02 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block On 14 May 2018 at 14:15, Peter Maydell <peter.maydell@linaro.org> wrote: > On 12 May 2018 at 10:28, Stefan Hajnoczi <stefanha@redhat.com> wrote: >> The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544: >> >> Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100) >> >> are available in the Git repository at: >> >> git://github.com/stefanha/qemu.git tags/block-pull-request >> >> for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9: >> >> block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100) >> >> ---------------------------------------------------------------- >> Block pull request >> >> * Support -drive cache.direct=off live migration for POSIX files >> >> ---------------------------------------------------------------- > > With this I get test failures for x86-64 Linux host (debug enabled): > > MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} > gtester -k --verbose -m=quick tests/test-replication > TEST: tests/test-replication... (pid=15016) > /replication/primary/read: OK > /replication/primary/write: OK > /replication/primary/start: OK > /replication/primary/stop: OK > /replication/primary/do_checkpoint: OK > /replication/primary/get_error_all: OK > /replication/secondary/read: ** > ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write: > assertion failed: (async_ret == 0) > FAIL > GTester: last random seed: R02Sf99d81651223b2fcdd0d7d601245eba3 > (pid=15131) > /replication/secondary/write: OK > /replication/secondary/start: ** > ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-replication.c:119:test_blk_write: > assertion failed: (async_ret == 0) > FAIL Sorry, this is a false alarm -- this test fails in this obscure way if the system has run out of disk space and the write returns ENOSPC. Ideally we should fix the test to print the errno. In the meantime I've deleted some large log files and will retest the pull :-) thanks -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2018-05-12 9:28 Stefan Hajnoczi 2018-05-12 9:42 ` no-reply 2018-05-14 13:15 ` Peter Maydell @ 2018-05-14 17:53 ` Peter Maydell 2 siblings, 0 replies; 31+ messages in thread From: Peter Maydell @ 2018-05-14 17:53 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block On 12 May 2018 at 10:28, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit e5cd695266c5709308aa95b1baae499e4b5d4544: > > Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-05-08 17:05:58 +0100) > > are available in the Git repository at: > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to 31be8a2a97ecba7d31a82932286489cac318e9e9: > > block/file-posix: add x-check-page-cache=on|off option (2018-05-11 16:43:05 +0100) > > ---------------------------------------------------------------- > Block pull request > > * Support -drive cache.direct=off live migration for POSIX files > Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2016-07-18 16:59 Stefan Hajnoczi 2016-07-19 8:01 ` Peter Maydell 0 siblings, 1 reply; 31+ messages in thread From: Stefan Hajnoczi @ 2016-07-18 16:59 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi The following changes since commit 3913d3707e3debfbf0d2d014a1a793394993b088: Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.7-20160718' into staging (2016-07-18 11:24:15 +0100) are available in the git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to e1029ae26d96d5de78c2d9af5eddcea92e73a46a: MAINTAINERS: Add include/block/aio.h to block I/O path section (2016-07-18 15:10:52 +0100) ---------------------------------------------------------------- This is not quite a v2 because I have added more patches. "linux-aio: share one LinuxAioState within an AioContext" is now fixed under mingw. ---------------------------------------------------------------- Cao jin (3): aio_ctx_check: follow CODING_STYLE aio-posix: remove useless parameter virtio-blk: dataplane cleanup Fam Zheng (1): MAINTAINERS: Add include/block/aio.h to block I/O path section Paolo Bonzini (1): linux-aio: share one LinuxAioState within an AioContext Roman Pen (1): linux-aio: prevent submitting more than MAX_EVENTS Stefan Hajnoczi (1): checkpatch: consider git extended headers valid patches Vladimir Sementsov-Ogievskiy (1): spec/parallels: fix a mistake MAINTAINERS | 1 + aio-posix.c | 3 +- aio-win32.c | 2 +- async.c | 33 ++++++++--- block/linux-aio.c | 36 +++++++----- block/raw-aio.h | 68 ----------------------- block/raw-posix.c | 119 +++++----------------------------------- block/raw-win32.c | 2 +- block/win32-aio.c | 2 +- docs/specs/parallels.txt | 2 +- hw/block/dataplane/virtio-blk.c | 6 +- include/block/aio.h | 15 ++++- include/block/raw-aio.h | 68 +++++++++++++++++++++++ scripts/checkpatch.pl | 5 ++ 14 files changed, 158 insertions(+), 204 deletions(-) delete mode 100644 block/raw-aio.h create mode 100644 include/block/raw-aio.h -- 2.7.4 ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2016-07-18 16:59 Stefan Hajnoczi @ 2016-07-19 8:01 ` Peter Maydell 0 siblings, 0 replies; 31+ messages in thread From: Peter Maydell @ 2016-07-19 8:01 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers On 18 July 2016 at 17:59, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit 3913d3707e3debfbf0d2d014a1a793394993b088: > > Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.7-20160718' into staging (2016-07-18 11:24:15 +0100) > > are available in the git repository at: > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to e1029ae26d96d5de78c2d9af5eddcea92e73a46a: > > MAINTAINERS: Add include/block/aio.h to block I/O path section (2016-07-18 15:10:52 +0100) > > ---------------------------------------------------------------- > > This is not quite a v2 because I have added more patches. "linux-aio: share > one LinuxAioState within an AioContext" is now fixed under mingw. > > ---------------------------------------------------------------- Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2014-01-31 21:19 Stefan Hajnoczi 2014-02-05 16:38 ` Peter Maydell 0 siblings, 1 reply; 31+ messages in thread From: Stefan Hajnoczi @ 2014-01-31 21:19 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Anthony Liguori The following changes since commit 89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be: Merge remote-tracking branch 'stefanha/tags/tracing-pull-request' into staging (2014-01-31 11:13:08 +0000) are available in the git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to 1b7650ef2f63d53cf89af25a9f323323cf2423a7: qemu-iotests: only run 071 on qcow2 (2014-01-31 22:05:03 +0100) ---------------------------------------------------------------- Block pull request ---------------------------------------------------------------- Daniel P. Berrange (1): Describe flaws in qcow/qcow2 encryption in the docs Fam Zheng (1): qemu-iotests: Drop assert_no_active_commit in case 040 Jeff Cody (2): block: remove QED .bdrv_make_empty implementation block: remove qcow2 .bdrv_make_empty implementation Markus Armbruster (2): block/vhdx: Error checking fixes dataplane: Comment fix Peter Lieven (1): block/vmdk: add basic .bdrv_check support Stefan Hajnoczi (1): qemu-iotests: only run 071 on qcow2 block/qcow2.c | 21 ------------------ block/qed.c | 6 ------ block/vhdx-log.c | 4 ++-- block/vhdx.c | 8 +++---- block/vmdk.c | 48 +++++++++++++++++++++++++++++++++++++++++ hw/block/dataplane/virtio-blk.c | 2 +- qemu-doc.texi | 23 +++++++++++++++++--- qemu-img.texi | 23 +++++++++++++++++--- tests/qemu-iotests/040 | 28 +++++++++++------------- tests/qemu-iotests/071 | 2 +- 10 files changed, 108 insertions(+), 57 deletions(-) -- 1.8.5.3 ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2014-01-31 21:19 Stefan Hajnoczi @ 2014-02-05 16:38 ` Peter Maydell 0 siblings, 0 replies; 31+ messages in thread From: Peter Maydell @ 2014-02-05 16:38 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers, Anthony Liguori On 31 January 2014 21:19, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit 89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be: > > Merge remote-tracking branch 'stefanha/tags/tracing-pull-request' into staging (2014-01-31 11:13:08 +0000) > > are available in the git repository at: > > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to 1b7650ef2f63d53cf89af25a9f323323cf2423a7: > > qemu-iotests: only run 071 on qcow2 (2014-01-31 22:05:03 +0100) Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2013-10-07 11:28 Stefan Hajnoczi 0 siblings, 0 replies; 31+ messages in thread From: Stefan Hajnoczi @ 2013-10-07 11:28 UTC (permalink / raw) To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori The following changes since commit a684f3cf9b9b9c3cb82be87aafc463de8974610c: Merge remote-tracking branch 'kraxel/seabios-1.7.3.2' into staging (2013-09-30 17:15:27 -0500) are available in the git repository at: git://github.com/stefanha/qemu.git block for you to fetch changes up to d4cea8dfb99153803164915c7a1109549ad3da9c: block: use correct filename (2013-10-07 13:23:19 +0200) ---------------------------------------------------------------- Dunrong Huang (2): block: use correct filename for error report block: use correct filename Jeff Cody (1): block: vhdx - add migration blocker Max Reitz (5): qcow2: Correct endianness in overlap check qcow2: CHECK_OFLAG_COPIED is obsolete qcow2: Switch L1 table in a single sequence qcow2: Free allocated L2 cluster on error qemu-iotests: Correct 026 output block.c | 8 ++++---- block/qcow2-cluster.c | 11 +++++++++-- block/qcow2-refcount.c | 8 +++----- block/vhdx.c | 10 ++++++++++ tests/qemu-iotests/026.out | 32 ++++++++------------------------ tests/qemu-iotests/026.out.nocache | 32 ++++++++------------------------ 6 files changed, 42 insertions(+), 59 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2013-07-15 11:16 Kevin Wolf 0 siblings, 0 replies; 31+ messages in thread From: Kevin Wolf @ 2013-07-15 11:16 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit c3cb8e77804313e1be99b5f28a34a346736707a5: ioport: remove LITTLE_ENDIAN mark for portio (2013-07-12 14:37:47 -0500) are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony for you to fetch changes up to a62eaa26c1d6d48fbdc3ac1d32bd1314f5fdc8c9: ahci: Fix FLUSH command (2013-07-15 11:53:55 +0200) ---------------------------------------------------------------- Kevin Wolf (6): block: Don't parse protocol from file.filename qemu-iotests: Update 051 reference output block: Add return value for bdrv_flush_all() cpus: Add return value for vm_stop() migration: Fail migration on bdrv_flush_all() error ahci: Fix FLUSH command Stefan Hajnoczi (2): blockdev: add sync mode to drive-backup QMP command block: add drive_backup HMP command block.c | 27 ++++++--- block/sheepdog.c | 2 +- blockdev.c | 6 ++ cpus.c | 20 ++++--- hmp-commands.hx | 20 +++++++ hmp.c | 28 +++++++++ hmp.h | 1 + hw/ide/ahci.c | 8 ++- hw/ide/core.c | 9 +++ hw/ide/internal.h | 1 + include/block/block.h | 5 +- include/sysemu/sysemu.h | 4 +- migration.c | 17 +++++- qapi-schema.json | 7 ++- qemu-img.c | 4 +- qmp-commands.hx | 6 +- stubs/vm-stop.c | 2 +- tests/qemu-iotests/051 | 12 ++++ tests/qemu-iotests/051.out | 121 ++++++++++++++++++++++++++++----------- tests/qemu-iotests/055 | 36 +++++++----- tests/qemu-iotests/common.filter | 2 +- 21 files changed, 262 insertions(+), 76 deletions(-) ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2013-04-05 13:28 Kevin Wolf 0 siblings, 0 replies; 31+ messages in thread From: Kevin Wolf @ 2013-04-05 13:28 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit 162cbbd1736de2bca43fdefa7e98c54a361ee60d: Merge remote-tracking branch 'luiz/queue/qmp' into staging (2013-04-02 14:07:35 -0500) are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony for you to fetch changes up to 094e751448359417c712ed1395d151c79ccd2538: qcow2: Fix L1 write error handling in qcow2_update_snapshot_refcount (2013-04-05 13:17:49 +0200) ---------------------------------------------------------------- KONRAD Frederic (1): virtio-blk-x: fix configuration synchronization. Kevin Wolf (3): usb-storage: Forward serial number to scsi-disk qcow2: Return real error in qcow2_update_snapshot_refcount qcow2: Fix L1 write error handling in qcow2_update_snapshot_refcount Stefan Hajnoczi (4): block: fix I/O throttling accounting blind spot block: keep I/O throttling slice time constant block: drop duplicated slice extension code block: clean up I/O throttling wait_time code block.c | 49 +++++++++++++++++++++------------------------- block/qcow2-refcount.c | 25 +++++++++++------------ blockdev.c | 1 - hw/pci/pci-hotplug.c | 2 +- hw/s390x/s390-virtio-bus.c | 4 ++-- hw/s390x/s390-virtio-bus.h | 1 - hw/s390x/virtio-ccw.c | 4 ++-- hw/s390x/virtio-ccw.h | 1 - hw/scsi-bus.c | 8 ++++++-- hw/scsi.h | 3 ++- hw/usb/dev-storage.c | 2 +- hw/virtio-blk.c | 7 ------- hw/virtio-blk.h | 2 -- hw/virtio-pci.c | 7 ++++--- hw/virtio-pci.h | 1 - include/block/block_int.h | 3 +-- 16 files changed, 54 insertions(+), 66 deletions(-) ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2011-07-06 14:21 Kevin Wolf 2011-07-12 9:14 ` Kevin Wolf 2011-07-12 13:16 ` Anthony Liguori 0 siblings, 2 replies; 31+ messages in thread From: Kevin Wolf @ 2011-07-06 14:21 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit 9312805d33e8b106bae356d13a8071fb37d75554: pxa2xx_lcd: add proper rotation support (2011-07-04 22:12:21 +0200) are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony Federico Simoncelli (1): qemu-img: Add cache command line option Johannes Stezenbach (1): block/raw-posix: Linux compat-ioctl warning workaround Kevin Wolf (3): Documentation: Remove outdated host_device note ide: Ignore reads during PIO in and writes during PIO out ide: Initialise buffers with zeros Luiz Capitulino (2): block: drive_init(): Simplify interface type setting block: drive_init(): Improve CHS setting error message Markus Armbruster (1): virtio-blk: Turn drive serial into a qdev property block/raw-posix.c | 14 +++++++++ blockdev.c | 14 +++----- hw/ide/core.c | 50 +++++++++++++++++++++++++----- hw/s390-virtio-bus.c | 4 ++- hw/s390-virtio-bus.h | 1 + hw/virtio-blk.c | 29 ++++++++++++------ hw/virtio-blk.h | 2 + hw/virtio-pci.c | 4 ++- hw/virtio-pci.h | 1 + hw/virtio.h | 3 +- qemu-img-cmds.hx | 6 ++-- qemu-img.c | 80 +++++++++++++++++++++++++++++++++++++++++-------- qemu-img.texi | 6 ---- 13 files changed, 161 insertions(+), 53 deletions(-) ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2011-07-06 14:21 Kevin Wolf @ 2011-07-12 9:14 ` Kevin Wolf 2011-07-12 13:16 ` Anthony Liguori 1 sibling, 0 replies; 31+ messages in thread From: Kevin Wolf @ 2011-07-12 9:14 UTC (permalink / raw) To: Kevin Wolf; +Cc: qemu-devel Am 06.07.2011 16:21, schrieb Kevin Wolf: > The following changes since commit 9312805d33e8b106bae356d13a8071fb37d75554: > > pxa2xx_lcd: add proper rotation support (2011-07-04 22:12:21 +0200) > > are available in the git repository at: > git://repo.or.cz/qemu/kevin.git for-anthony > > Federico Simoncelli (1): > qemu-img: Add cache command line option > > Johannes Stezenbach (1): > block/raw-posix: Linux compat-ioctl warning workaround > > Kevin Wolf (3): > Documentation: Remove outdated host_device note > ide: Ignore reads during PIO in and writes during PIO out > ide: Initialise buffers with zeros > > Luiz Capitulino (2): > block: drive_init(): Simplify interface type setting > block: drive_init(): Improve CHS setting error message > > Markus Armbruster (1): > virtio-blk: Turn drive serial into a qdev property > > block/raw-posix.c | 14 +++++++++ > blockdev.c | 14 +++----- > hw/ide/core.c | 50 +++++++++++++++++++++++++----- > hw/s390-virtio-bus.c | 4 ++- > hw/s390-virtio-bus.h | 1 + > hw/virtio-blk.c | 29 ++++++++++++------ > hw/virtio-blk.h | 2 + > hw/virtio-pci.c | 4 ++- > hw/virtio-pci.h | 1 + > hw/virtio.h | 3 +- > qemu-img-cmds.hx | 6 ++-- > qemu-img.c | 80 +++++++++++++++++++++++++++++++++++++++++-------- > qemu-img.texi | 6 ---- > 13 files changed, 161 insertions(+), 53 deletions(-) Ping? ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Block patches 2011-07-06 14:21 Kevin Wolf 2011-07-12 9:14 ` Kevin Wolf @ 2011-07-12 13:16 ` Anthony Liguori 1 sibling, 0 replies; 31+ messages in thread From: Anthony Liguori @ 2011-07-12 13:16 UTC (permalink / raw) To: Kevin Wolf; +Cc: qemu-devel On 07/06/2011 09:21 AM, Kevin Wolf wrote: > The following changes since commit 9312805d33e8b106bae356d13a8071fb37d75554: > > pxa2xx_lcd: add proper rotation support (2011-07-04 22:12:21 +0200) Pulled. Thanks. Regards, Anthony Liguori > > are available in the git repository at: > git://repo.or.cz/qemu/kevin.git for-anthony > > Federico Simoncelli (1): > qemu-img: Add cache command line option > > Johannes Stezenbach (1): > block/raw-posix: Linux compat-ioctl warning workaround > > Kevin Wolf (3): > Documentation: Remove outdated host_device note > ide: Ignore reads during PIO in and writes during PIO out > ide: Initialise buffers with zeros > > Luiz Capitulino (2): > block: drive_init(): Simplify interface type setting > block: drive_init(): Improve CHS setting error message > > Markus Armbruster (1): > virtio-blk: Turn drive serial into a qdev property > > block/raw-posix.c | 14 +++++++++ > blockdev.c | 14 +++----- > hw/ide/core.c | 50 +++++++++++++++++++++++++----- > hw/s390-virtio-bus.c | 4 ++- > hw/s390-virtio-bus.h | 1 + > hw/virtio-blk.c | 29 ++++++++++++------ > hw/virtio-blk.h | 2 + > hw/virtio-pci.c | 4 ++- > hw/virtio-pci.h | 1 + > hw/virtio.h | 3 +- > qemu-img-cmds.hx | 6 ++-- > qemu-img.c | 80 +++++++++++++++++++++++++++++++++++++++++-------- > qemu-img.texi | 6 ---- > 13 files changed, 161 insertions(+), 53 deletions(-) > > ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 0/8] Block patches @ 2010-05-20 13:10 Kevin Wolf 0 siblings, 0 replies; 31+ messages in thread From: Kevin Wolf @ 2010-05-20 13:10 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel Hi Anthony, this bunch of patches contains some fixes that I think qualify for stable, especially the first two. Please cherry-pick them into stable-0.12 when you have pulled: 468f932 block: fix sector comparism in multiwrite_req_compare 49eb7b7 virtio-blk: fix barrier support 5fdf2a6 block: fix aio_flush segfaults for read-only protocols (e.g. curl) Kevin The following changes since commit 5a4bb580cdb10b066f9fd67658b31cac4a4ea5e5: Richard Henderson (1): target-sparc: Simplify ICC generation. are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony Avi Kivity (1): block: fix aio_flush segfaults for read-only protocols (e.g. curl) Christoph Hellwig (2): virtio-blk: fix barrier support block: fix sector comparism in multiwrite_req_compare Kevin Wolf (1): vvfat: More build fixes with DEBUG Nicholas Bellinger (2): block: Make find_image_format() return 'raw' BlockDriver for SG_IO devices block: Add SG_IO device check in refresh_total_sectors() Riccardo Magliocchetti (1): vvfat: Fix compilation with DEBUG defined Stefan Hajnoczi (1): virtio-blk: Avoid zeroing every request structure aio.c | 4 +++- block.c | 23 ++++++++++++++++++++++- block/vvfat.c | 10 +++++++--- hw/virtio-blk.c | 19 ++++++++++++++++--- 4 files changed, 48 insertions(+), 8 deletions(-) ^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2019-06-24 14:52 UTC | newest] Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-05-10 13:02 [Qemu-devel] [PULL 0/8] Block patches Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 1/8] util/readline: add a space to fix errors by checkpatch tool Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 2/8] util: readline: replace tab indent by four spaces to fix checkpatch errors Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 3/8] util/readline: Add braces " Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 4/8] block: Add coroutine_fn to bdrv_check_co_entry Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 5/8] block/io.c: fix for the allocation failure Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 6/8] aio-posix: ensure poll mode is left when aio_notify is called Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 7/8] docs: add Secure Coding Practices to developer docs Stefan Hajnoczi 2019-05-10 13:02 ` [Qemu-devel] [PULL 8/8] docs: add Security chapter to the documentation Stefan Hajnoczi 2019-05-10 14:24 ` [Qemu-devel] [PULL 0/8] Block patches Peter Maydell -- strict thread matches above, loose matches on Subject: below -- 2019-06-21 13:23 Max Reitz 2019-06-23 17:18 ` Peter Maydell 2019-06-24 12:20 ` Max Reitz 2019-06-24 13:15 ` Pino Toscano 2019-06-24 14:49 ` Max Reitz 2018-05-12 9:28 Stefan Hajnoczi 2018-05-12 9:42 ` no-reply 2018-05-14 13:15 ` Peter Maydell 2018-05-14 16:02 ` Peter Maydell 2018-05-14 17:53 ` Peter Maydell 2016-07-18 16:59 Stefan Hajnoczi 2016-07-19 8:01 ` Peter Maydell 2014-01-31 21:19 Stefan Hajnoczi 2014-02-05 16:38 ` Peter Maydell 2013-10-07 11:28 Stefan Hajnoczi 2013-07-15 11:16 Kevin Wolf 2013-04-05 13:28 Kevin Wolf 2011-07-06 14:21 Kevin Wolf 2011-07-12 9:14 ` Kevin Wolf 2011-07-12 13:16 ` Anthony Liguori 2010-05-20 13:10 Kevin Wolf
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.