Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cd425b6 authored by Dmitry Tarnyagin's avatar Dmitry Tarnyagin Committed by Ohad Ben-Cohen
Browse files

remoteproc/ste: fix memory leak on shutdown



Fixes coherent memory leakage, caused by non-deallocated
firmware image chunk.

Cc: stable@vger.kernel.org
Signed-off-by: default avatarDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
Acked-by: default avatarIdo Yariv <ido@wizery.com>
[slightly edit subject and commit log]
Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
parent b39599b7
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -240,6 +240,8 @@ static int sproc_drv_remove(struct platform_device *pdev)

	/* Unregister as remoteproc device */
	rproc_del(sproc->rproc);
	dma_free_coherent(sproc->rproc->dev.parent, SPROC_FW_SIZE,
			  sproc->fw_addr, sproc->fw_dma_addr);
	rproc_put(sproc->rproc);

	mdev->drv_data = NULL;
@@ -297,10 +299,13 @@ static int sproc_probe(struct platform_device *pdev)
	/* Register as a remoteproc device */
	err = rproc_add(rproc);
	if (err)
		goto free_rproc;
		goto free_mem;

	return 0;

free_mem:
	dma_free_coherent(rproc->dev.parent, SPROC_FW_SIZE,
			  sproc->fw_addr, sproc->fw_dma_addr);
free_rproc:
	/* Reset device data upon error */
	mdev->drv_data = NULL;