From d78ff5ab4e8c4655c8cc3db619c42c3f60454e7e Mon Sep 17 00:00:00 2001 From: Tim Newsome Date: Tue, 9 Apr 2019 10:55:25 -0700 Subject: [PATCH] Propagate some errors in execute_abstract_command(). Change-Id: Ia3ec457dd5d65378a6c922802713e36d6828bcea --- src/target/riscv/riscv-013.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/target/riscv/riscv-013.c b/src/target/riscv/riscv-013.c index d7bfac9d1..86820dfd5 100644 --- a/src/target/riscv/riscv-013.c +++ b/src/target/riscv/riscv-013.c @@ -744,13 +744,14 @@ static int execute_abstract_command(struct target *target, uint32_t command) } } - dmi_write_exec(target, DMI_COMMAND, command); + if (dmi_write_exec(target, DMI_COMMAND, command) != ERROR_OK) + return ERROR_FAIL; uint32_t abstractcs = 0; - wait_for_idle(target, &abstractcs); + int result = wait_for_idle(target, &abstractcs); info->cmderr = get_field(abstractcs, DMI_ABSTRACTCS_CMDERR); - if (info->cmderr != 0) { + if (info->cmderr != 0 || result != ERROR_OK) { LOG_DEBUG("command 0x%x failed; abstractcs=0x%x", command, abstractcs); /* Clear the error. */ dmi_write(target, DMI_ABSTRACTCS, set_field(0, DMI_ABSTRACTCS_CMDERR,