]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mailbox: mailbox-test: don't free the reused channel
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Fri, 17 Apr 2026 07:42:34 +0000 (09:42 +0200)
committerJassi Brar <jassisinghbrar@gmail.com>
Sat, 18 Apr 2026 18:10:14 +0000 (13:10 -0500)
The RX channel can be aliased to the TX channel if it has a different
MMIO. This special case needs to be handled when freeing the channels
otherwise a double-free occurs.

Fixes: 8ea4484d0c2b ("mailbox: Add generic mechanism for testing Mailbox Controllers")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
drivers/mailbox/mailbox-test.c

index daf4b6f27d11fb9ac5e4809dca97fe2079c4cddb..0a56b593fcace9af3d1368175165287afb9414fb 100644 (file)
@@ -427,7 +427,7 @@ static int mbox_test_probe(struct platform_device *pdev)
 err_free_chans:
        if (tdev->tx_channel)
                mbox_free_channel(tdev->tx_channel);
-       if (tdev->rx_channel)
+       if (tdev->rx_channel && tdev->rx_channel != tdev->tx_channel)
                mbox_free_channel(tdev->rx_channel);
        return ret;
 }
@@ -440,7 +440,7 @@ static void mbox_test_remove(struct platform_device *pdev)
 
        if (tdev->tx_channel)
                mbox_free_channel(tdev->tx_channel);
-       if (tdev->rx_channel)
+       if (tdev->rx_channel && tdev->rx_channel != tdev->tx_channel)
                mbox_free_channel(tdev->rx_channel);
 }