media: v4l2-fwnode: simplify v4l2_fwnode_reference_parse_int_props()
The logic at v4l2_fwnode_reference_parse_int_props() is somewhat complex and violates Linux coding style, as it does multiple statements on a single line. That makes static analyzers to be confused, as warned by smatch: drivers/media/v4l2-core/v4l2-fwnode.c:832 v4l2_fwnode_reference_parse_int_props() warn: passing zero to 'PTR_ERR' Simplify the logic, in order to make clearer about what happens when v4l2_fwnode_reference_get_int_prop() returns an error. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Родитель
76d81243a4
Коммит
9879c9d3ec
|
@ -819,17 +819,25 @@ static int v4l2_fwnode_reference_parse_int_props(
|
||||||
unsigned int index;
|
unsigned int index;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
for (index = 0; !IS_ERR((fwnode = v4l2_fwnode_reference_get_int_prop(
|
index = 0;
|
||||||
dev_fwnode(dev), prop, index, props,
|
do {
|
||||||
nprops))); index++)
|
fwnode = v4l2_fwnode_reference_get_int_prop(dev_fwnode(dev),
|
||||||
|
prop, index,
|
||||||
|
props, nprops);
|
||||||
|
if (IS_ERR(fwnode)) {
|
||||||
|
/*
|
||||||
|
* Note that right now both -ENODATA and -ENOENT may
|
||||||
|
* signal out-of-bounds access. Return the error in
|
||||||
|
* cases other than that.
|
||||||
|
*/
|
||||||
|
if (PTR_ERR(fwnode) != -ENOENT &&
|
||||||
|
PTR_ERR(fwnode) != -ENODATA)
|
||||||
|
return PTR_ERR(fwnode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
fwnode_handle_put(fwnode);
|
fwnode_handle_put(fwnode);
|
||||||
|
index++;
|
||||||
/*
|
} while (1);
|
||||||
* Note that right now both -ENODATA and -ENOENT may signal
|
|
||||||
* out-of-bounds access. Return the error in cases other than that.
|
|
||||||
*/
|
|
||||||
if (PTR_ERR(fwnode) != -ENOENT && PTR_ERR(fwnode) != -ENODATA)
|
|
||||||
return PTR_ERR(fwnode);
|
|
||||||
|
|
||||||
ret = v4l2_async_notifier_realloc(notifier,
|
ret = v4l2_async_notifier_realloc(notifier,
|
||||||
notifier->num_subdevs + index);
|
notifier->num_subdevs + index);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче