Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

soc: qcom: cmd-db: Use devm_memremap() to fix memory leak in cmd_db_dev_probe

If cmd_db_magic_matches() fails after memremap() succeeds, the function
returns -EINVAL without unmapping the memory region, causing a
potential resource leak.

Switch to devm_memremap to automatically manage the map resource.

Fixes: 312416d9171a ("drivers: qcom: add command DB driver")
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Link: https://lore.kernel.org/r/20251216013933.773-1-vulab@iscas.ac.cn
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Haotian Zhang and committed by
Bjorn Andersson
0da78247 0539c5a6

+4 -3
+4 -3
drivers/soc/qcom/cmd-db.c
··· 349 349 return -EINVAL; 350 350 } 351 351 352 - cmd_db_header = memremap(rmem->base, rmem->size, MEMREMAP_WC); 353 - if (!cmd_db_header) { 354 - ret = -ENOMEM; 352 + cmd_db_header = devm_memremap(&pdev->dev, rmem->base, rmem->size, MEMREMAP_WC); 353 + if (IS_ERR(cmd_db_header)) { 354 + ret = PTR_ERR(cmd_db_header); 355 355 cmd_db_header = NULL; 356 356 return ret; 357 357 } 358 358 359 359 if (!cmd_db_magic_matches(cmd_db_header)) { 360 360 dev_err(&pdev->dev, "Invalid Command DB Magic\n"); 361 + cmd_db_header = NULL; 361 362 return -EINVAL; 362 363 } 363 364