Reset firmware

Reset the firmware if it becomes unresponsive. Use ping to send
keep alive requests.

Only monitor ping and inference request messages. The other messages
pass no resources to the firmware and can be cancelled without
resetting the firmware.

Change-Id: Ifbcc370f02d79a64f25598f11376a1dc84a7a066
diff --git a/kernel/ethosu_network_info.h b/kernel/ethosu_network_info.h
index 2a333a6..680be80 100644
--- a/kernel/ethosu_network_info.h
+++ b/kernel/ethosu_network_info.h
@@ -26,6 +26,7 @@
  ****************************************************************************/
 
 #include "ethosu_core_interface.h"
+#include "ethosu_mailbox.h"
 
 #include <linux/kref.h>
 #include <linux/types.h>
@@ -44,9 +45,9 @@
 	struct ethosu_network           *net;
 	struct ethosu_uapi_network_info *uapi;
 	struct kref                     kref;
-	struct list_head                list;
 	struct completion               done;
 	int                             errno;
+	struct ethosu_mailbox_msg       msg;
 };
 
 /****************************************************************************
@@ -72,8 +73,10 @@
 
 /**
  * ethosu_network_info_put() - Put network info
+ *
+ * Return: 1 if object was removed, else 0.
  */
-void ethosu_network_info_put(struct ethosu_network_info *info);
+int ethosu_network_info_put(struct ethosu_network_info *info);
 
 /**
  * ethosu_network_info_wait() - Get network info