Fix: do not attempt to read data from mailbox when length is 0
Also add a call to send a ping message in the inference_runner example
app.
Change-Id: Ia2b4abf5fec8285c320ec0f28df167ff2ea13d82
diff --git a/kernel/ethosu_mailbox.c b/kernel/ethosu_mailbox.c
index 158a7f5..7f159f3 100644
--- a/kernel/ethosu_mailbox.c
+++ b/kernel/ethosu_mailbox.c
@@ -128,7 +128,9 @@
uint32_t rpos = queue->header.read;
size_t queue_avail = ethosu_queue_available(queue);
- if (queue_avail == 0)
+ if (length == 0)
+ return 0;
+ else if (queue_avail == 0)
return -ENOMSG;
else if (length > queue_avail)
return -EBADMSG;
diff --git a/utils/inference_runner/inference_runner.cpp b/utils/inference_runner/inference_runner.cpp
index 17969da..f2e1fa1 100644
--- a/utils/inference_runner/inference_runner.cpp
+++ b/utils/inference_runner/inference_runner.cpp
@@ -207,6 +207,9 @@
try {
Device device;
+ cout << "Send Ping" << endl;
+ device.ioctl(ETHOSU_IOCTL_PING);
+
cout << "Send version request" << endl;
device.ioctl(ETHOSU_IOCTL_VERSION_REQ);