if of_find_device_by_node() succeed, sba_probe() doesn't have a corresponding put_device(). Thus add a jump target to fix the exception handling for this function implementation. Fixes: 743e1c8ffe4e ("dmaengine: Add Broadcom SBA RAID driver") Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> --- drivers/dma/bcm-sba-raid.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/dma/bcm-sba-raid.c b/drivers/dma/bcm-sba-raid.c index 64239da02e74..322d48b397e7 100644 --- a/drivers/dma/bcm-sba-raid.c +++ b/drivers/dma/bcm-sba-raid.c @@ -1707,7 +1707,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 put_device; /* Check availability of debugfs */ if (!debugfs_initialized()) @@ -1737,6 +1737,8 @@ static int sba_probe(struct platform_device *pdev) fail_free_resources: debugfs_remove_recursive(sba->root); sba_freeup_channel_resources(sba); +put_device: + put_device(&) fail_free_mchan: mbox_free_channel(sba->mchan); return ret; -- 2.25.4