static struct iio_backend *__devm_iio_backend_fwnode_get(struct device *dev, const char *name,
struct fwnode_handle *fwnode)
{
- struct fwnode_handle *fwnode_back;
struct iio_backend *back;
unsigned int index;
int ret;
index = 0;
}
- fwnode_back = fwnode_find_reference(fwnode, "io-backends", index);
+ struct fwnode_handle *fwnode_back __free(fwnode_handle) =
+ fwnode_find_reference(fwnode, "io-backends", index);
if (IS_ERR(fwnode_back))
return dev_err_cast_probe(dev, fwnode_back,
"Cannot get Firmware reference\n");
if (!device_match_fwnode(back->dev, fwnode_back))
continue;
- fwnode_handle_put(fwnode_back);
ret = __devm_iio_backend_get(dev, back);
if (ret)
return ERR_PTR(ret);
return back;
}
- fwnode_handle_put(fwnode_back);
return ERR_PTR(-EPROBE_DEFER);
}