mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
iio: adc: ad5755: use scoped device_for_each_child_node()
Switch to device_for_each_child_node_scoped() to simplify the code by removing the need for calls to fwnode_handle_put() in the error path, in this particular case dropping the jump to error_out as well. This prevents possible memory leaks if new error paths are added without the required call to fwnode_handle_put(). Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com> Link: https://patch.msgid.link/20240926-iio_device_for_each_child_node_scoped-v1-4-64ca8a424578@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
0c78543660
commit
4010e7894b
|
|
@ -699,7 +699,6 @@ static const struct ad5755_platform_data ad5755_default_pdata = {
|
|||
|
||||
static struct ad5755_platform_data *ad5755_parse_fw(struct device *dev)
|
||||
{
|
||||
struct fwnode_handle *pp;
|
||||
struct ad5755_platform_data *pdata;
|
||||
unsigned int tmp;
|
||||
unsigned int tmparray[3];
|
||||
|
|
@ -746,11 +745,12 @@ static struct ad5755_platform_data *ad5755_parse_fw(struct device *dev)
|
|||
}
|
||||
|
||||
devnr = 0;
|
||||
device_for_each_child_node(dev, pp) {
|
||||
device_for_each_child_node_scoped(dev, pp) {
|
||||
if (devnr >= AD5755_NUM_CHANNELS) {
|
||||
dev_err(dev,
|
||||
"There are too many channels defined in DT\n");
|
||||
goto error_out;
|
||||
devm_kfree(dev, pdata);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pdata->dac[devnr].mode = AD5755_MODE_CURRENT_4mA_20mA;
|
||||
|
|
@ -800,11 +800,6 @@ static struct ad5755_platform_data *ad5755_parse_fw(struct device *dev)
|
|||
}
|
||||
|
||||
return pdata;
|
||||
|
||||
error_out:
|
||||
fwnode_handle_put(pp);
|
||||
devm_kfree(dev, pdata);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int ad5755_probe(struct spi_device *spi)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user