mailbox: mailbox-test: fix debugfs in multi-instances
authorFabien Dessenne <fabien.dessenne@st.com>
Fri, 4 Jan 2019 13:47:15 +0000 (14:47 +0100)
committerJassi Brar <jaswinder.singh@linaro.org>
Thu, 7 Mar 2019 02:32:59 +0000 (20:32 -0600)
Create one debug entry directory per instance to support the multi
instantiation.

Signed-off-by: Ludovic Barre <ludovic.barre@st.com>
Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
drivers/mailbox/mailbox-test.c

index 58bfafc..4e2bfba 100644 (file)
@@ -31,7 +31,6 @@
                                 (MBOX_MAX_MSG_LEN / MBOX_BYTES_PER_LINE))
 
 static bool mbox_data_ready;
-static struct dentry *root_debugfs_dir;
 
 struct mbox_test_device {
        struct device           *dev;
@@ -45,6 +44,7 @@ struct mbox_test_device {
        spinlock_t              lock;
        wait_queue_head_t       waitq;
        struct fasync_struct    *async_queue;
+       struct dentry           *root_debugfs_dir;
 };
 
 static ssize_t mbox_test_signal_write(struct file *filp,
@@ -262,16 +262,16 @@ static int mbox_test_add_debugfs(struct platform_device *pdev,
        if (!debugfs_initialized())
                return 0;
 
-       root_debugfs_dir = debugfs_create_dir("mailbox", NULL);
-       if (!root_debugfs_dir) {
+       tdev->root_debugfs_dir = debugfs_create_dir(dev_name(&pdev->dev), NULL);
+       if (!tdev->root_debugfs_dir) {
                dev_err(&pdev->dev, "Failed to create Mailbox debugfs\n");
                return -EINVAL;
        }
 
-       debugfs_create_file("message", 0600, root_debugfs_dir,
+       debugfs_create_file("message", 0600, tdev->root_debugfs_dir,
                            tdev, &mbox_test_message_ops);
 
-       debugfs_create_file("signal", 0200, root_debugfs_dir,
+       debugfs_create_file("signal", 0200, tdev->root_debugfs_dir,
                            tdev, &mbox_test_signal_ops);
 
        return 0;
@@ -416,7 +416,7 @@ static int mbox_test_remove(struct platform_device *pdev)
 {
        struct mbox_test_device *tdev = platform_get_drvdata(pdev);
 
-       debugfs_remove_recursive(root_debugfs_dir);
+       debugfs_remove_recursive(tdev->root_debugfs_dir);
 
        if (tdev->tx_channel)
                mbox_free_channel(tdev->tx_channel);