aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/riscv/simple_riscv64.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/riscv/simple_riscv64.c')
-rw-r--r--src/cpu/riscv/simple_riscv64.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cpu/riscv/simple_riscv64.c b/src/cpu/riscv/simple_riscv64.c
index b2bdff6..fff9a62 100644
--- a/src/cpu/riscv/simple_riscv64.c
+++ b/src/cpu/riscv/simple_riscv64.c
@@ -661,6 +661,9 @@ static stat simple_riscv64_clock(struct simple_riscv64 *cpu)
return ENOSUCH;
}
+ if (ret != OK)
+ return ret;
+
if (cpu->ils.state == LDST_IDLE) {
cpu->ils.pkt = create_packet(cpu->rcv + 64,
cpu->pc,
@@ -675,13 +678,16 @@ send:
stat ret = SEND(cpu, cpu->imem, cpu->ils.pkt);
if (ret == EBUSY) {
cpu->ils.state = LDST_BLOCKED;
- return ret;
+ return OK;
}
+ if (ret != OK)
+ return ret;
+
cpu->ils.state = LDST_SENT;
}
- return ret;
+ return OK;
}
struct component *create_simple_riscv64(uint64_t rcv, uint64_t start_pc,