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

reset: socfpga: add error handling and release mem-region

In case of an error, call release_mem_region when an error happens
during allocation of resources. Also add error handling for the case
that reset_controller_register fails.

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>

authored by

Dinh Nguyen and committed by
Philipp Zabel
0d625a16 3bfe8933

+9 -2
+9 -2
drivers/reset/reset-socfpga.c
··· 44 44 data->membase = ioremap(res.start, size); 45 45 if (!data->membase) { 46 46 ret = -ENOMEM; 47 - goto err_alloc; 47 + goto release_region; 48 48 } 49 49 50 50 if (of_property_read_u32(np, "altr,modrst-offset", &reg_offset)) ··· 59 59 data->rcdev.of_node = np; 60 60 data->status_active_low = true; 61 61 62 - return reset_controller_register(&data->rcdev); 62 + ret = reset_controller_register(&data->rcdev); 63 + if (ret) 64 + pr_err("unable to register device\n"); 65 + 66 + return ret; 67 + 68 + release_region: 69 + release_mem_region(res.start, size); 63 70 64 71 err_alloc: 65 72 kfree(data);