]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dmaengine: bcm-sba-raid: fix device leak on probe
authorJohan Hovold <johan@kernel.org>
Mon, 17 Nov 2025 16:12:45 +0000 (17:12 +0100)
committerVinod Koul <vkoul@kernel.org>
Sun, 14 Dec 2025 09:17:24 +0000 (14:47 +0530)
Make sure to drop the reference taken when looking up the mailbox device
during probe on probe failures and on driver unbind.

Fixes: 743e1c8ffe4e ("dmaengine: Add Broadcom SBA RAID driver")
Cc: stable@vger.kernel.org # 4.13
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20251117161258.10679-4-johan@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/bcm-sba-raid.c

index 7f0e76439ce58ed255da3e9bf52b381edcf1e3e9..ed037fa883f6f91c9e565e71ba53e3284e5e08e6 100644 (file)
@@ -1699,7 +1699,7 @@ static int sba_probe(struct platform_device *pdev)
        /* Prealloc channel resource */
        ret = sba_prealloc_channel_resources(sba);
        if (ret)
-               goto fail_free_mchan;
+               goto fail_put_mbox;
 
        /* Check availability of debugfs */
        if (!debugfs_initialized())
@@ -1729,6 +1729,8 @@ skip_debugfs:
 fail_free_resources:
        debugfs_remove_recursive(sba->root);
        sba_freeup_channel_resources(sba);
+fail_put_mbox:
+       put_device(sba->mbox_dev);
 fail_free_mchan:
        mbox_free_channel(sba->mchan);
        return ret;
@@ -1744,6 +1746,8 @@ static void sba_remove(struct platform_device *pdev)
 
        sba_freeup_channel_resources(sba);
 
+       put_device(sba->mbox_dev);
+
        mbox_free_channel(sba->mchan);
 }