]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Jan 2026 10:18:48 +0000 (11:18 +0100)
commit 7c3a46ebf15a9796b763a54272407fdbf945bed8 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/bcm-sba-raid.c

index cfa6e1167a1fd1e80857c1115d00f3671803ec16..eaa4d18f96fe7f91ca7cc4808180a9130e4e2d36 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);
 }