提交 3d769df5 编写于 作者: H Hans Verkuil 提交者: Mauro Carvalho Chehab

media: v4l2-subdev.h: v4l2_subdev_call: use temp __sd variable

The sd argument of this macro can be a more complex expression. Since it
is used 5 times in the macro it can be evaluated that many times as well.

So assign it to a temp variable in the beginning and use that instead.

This also avoids any potential side-effects of evaluating sd.
Signed-off-by: NHans Verkuil <hverkuil-cisco@xs4all.nl>
Acked-by: NSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab+samsung@kernel.org>
上级 5515e414
......@@ -1093,13 +1093,14 @@ void v4l2_subdev_init(struct v4l2_subdev *sd,
*/
#define v4l2_subdev_call(sd, o, f, args...) \
({ \
struct v4l2_subdev *__sd = (sd); \
int __result; \
if (!(sd)) \
if (!__sd) \
__result = -ENODEV; \
else if (!((sd)->ops->o && (sd)->ops->o->f)) \
else if (!(__sd->ops->o && __sd->ops->o->f)) \
__result = -ENOIOCTLCMD; \
else \
__result = (sd)->ops->o->f((sd), ##args); \
__result = __sd->ops->o->f(__sd, ##args); \
__result; \
})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册