summaryrefslogtreecommitdiff
path: root/drivers/mailbox
diff options
context:
space:
mode:
authorAndrew Davis <afd@ti.com>2024-04-10 08:59:33 -0500
committerJassi Brar <jassisinghbrar@gmail.com>2024-05-19 22:29:44 -0500
commite9eceec61a3e064e75c8c5db75a03c3b1318bdd4 (patch)
tree25c4dd05ddeee234a9d5f050c8567b8949ea85b4 /drivers/mailbox
parent6979e8be50af143a373bf5905a176434a5880ca4 (diff)
downloadlwn-e9eceec61a3e064e75c8c5db75a03c3b1318bdd4.tar.gz
lwn-e9eceec61a3e064e75c8c5db75a03c3b1318bdd4.zip
mailbox: omap: Move fifo size check to point of use
The mbox_kfifo_size can be changed at runtime, the sanity check on it's value should be done when it is used, not only once at init time. Signed-off-by: Andrew Davis <afd@ti.com> Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
Diffstat (limited to 'drivers/mailbox')
-rw-r--r--drivers/mailbox/omap-mailbox.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
index c083734b6954..167348fb1b33 100644
--- a/drivers/mailbox/omap-mailbox.c
+++ b/drivers/mailbox/omap-mailbox.c
@@ -310,6 +310,7 @@ static struct omap_mbox_queue *mbox_queue_alloc(struct omap_mbox *mbox,
void (*work)(struct work_struct *))
{
struct omap_mbox_queue *mq;
+ unsigned int size;
if (!work)
return NULL;
@@ -320,7 +321,10 @@ static struct omap_mbox_queue *mbox_queue_alloc(struct omap_mbox *mbox,
spin_lock_init(&mq->lock);
- if (kfifo_alloc(&mq->fifo, mbox_kfifo_size, GFP_KERNEL))
+ /* kfifo size sanity check: alignment and minimal size */
+ size = ALIGN(mbox_kfifo_size, sizeof(u32));
+ size = max_t(unsigned int, size, sizeof(u32));
+ if (kfifo_alloc(&mq->fifo, size, GFP_KERNEL))
goto error;
INIT_WORK(&mq->work, work);
@@ -838,10 +842,6 @@ static int __init omap_mbox_init(void)
if (err)
return err;
- /* kfifo size sanity check: alignment and minimal size */
- mbox_kfifo_size = ALIGN(mbox_kfifo_size, sizeof(u32));
- mbox_kfifo_size = max_t(unsigned int, mbox_kfifo_size, sizeof(u32));
-
err = platform_driver_register(&omap_mbox_driver);
if (err)
class_unregister(&omap_mbox_class);