diff options
Diffstat (limited to 'kernel/ethosu_mailbox.c')
-rw-r--r-- | kernel/ethosu_mailbox.c | 10 |
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); } |