aboutsummaryrefslogtreecommitdiff
path: root/kernel/ethosu_mailbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/ethosu_mailbox.c')
-rw-r--r--kernel/ethosu_mailbox.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/ethosu_mailbox.c b/kernel/ethosu_mailbox.c
index 3e7284b..5b105d8 100644
--- a/kernel/ethosu_mailbox.c
+++ b/kernel/ethosu_mailbox.c
@@ -31,6 +31,7 @@
#include <linux/jiffies.h>
#include <linux/resource.h>
#include <linux/uio.h>
+#include <linux/bug.h>
/****************************************************************************
* Includes
@@ -65,6 +66,7 @@ static void ethosu_core_set_capacity(struct ethosu_buffer *buf,
int ethosu_mailbox_register(struct ethosu_mailbox *mbox,
struct ethosu_mailbox_msg *msg)
{
+ WARN_ON_ONCE(!mutex_is_locked(&mbox->dev->mutex));
msg->id = idr_alloc_cyclic(&mbox->msg_idr, msg, 0, INT_MAX, GFP_KERNEL);
if (msg->id < 0)
return msg->id;
@@ -75,6 +77,7 @@ int ethosu_mailbox_register(struct ethosu_mailbox *mbox,
void ethosu_mailbox_deregister(struct ethosu_mailbox *mbox,
struct ethosu_mailbox_msg *msg)
{
+ WARN_ON_ONCE(!mutex_is_locked(&mbox->dev->mutex));
idr_remove(&mbox->msg_idr, msg->id);
}
@@ -82,8 +85,10 @@ struct ethosu_mailbox_msg *ethosu_mailbox_find(struct ethosu_mailbox *mbox,
int msg_id,
uint32_t msg_type)
{
- struct ethosu_mailbox_msg *ptr = (struct ethosu_mailbox_msg *)idr_find(
- &mbox->msg_idr, msg_id);
+ struct ethosu_mailbox_msg *ptr;
+
+ WARN_ON_ONCE(!mutex_is_locked(&mbox->dev->mutex));
+ ptr = (struct ethosu_mailbox_msg *)idr_find(&mbox->msg_idr, msg_id);
if (ptr == NULL)
return ERR_PTR(-ENOENT);
@@ -99,6 +104,7 @@ void ethosu_mailbox_fail(struct ethosu_mailbox *mbox)
struct ethosu_mailbox_msg *cur;
int id;
+ WARN_ON_ONCE(!mutex_is_locked(&mbox->dev->mutex));
idr_for_each_entry(&mbox->msg_idr, cur, id) {
cur->fail(cur);
}