media: imx: work around false-positive warning, again
[ Upstream commit 8d1a4817cce1b15b4909f0e324a4f5af5952da67 ]
A warning that I thought to be solved by a previous patch of mine
has resurfaced with gcc-8:
media/imx/imx-media-csi.c: In function 'csi_link_validate':
media/imx/imx-media-csi.c:1025:20: error: 'upstream_ep' may be used uninitialized in this function [-Werror=maybe-uninitialized]
media/imx/imx-media-csi.c:1026:24: error: 'upstream_ep.bus_type' may be used uninitialized in this function [-Werror=maybe-uninitialized]
media/imx/imx-media-csi.c:127:19: error: 'upstream_ep.bus.parallel.bus_width' may be used uninitialized in this function [-Werror=maybe-uninitialized]
media/imx/imx-media-csi.c: In function 'csi_enum_mbus_code':
media/imx/imx-media-csi.c:132:9: error: '*((void *)&upstream_ep+12)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
media/imx/imx-media-csi.c:132:48: error: 'upstream_ep.bus.parallel.bus_width' may be used uninitialized in this function [-Werror=maybe-uninitialized]
I spent some more time digging in this time, and think I have a better
fix, bailing out of the function that either initializes or errors
out here, which simplifies the code enough for gcc to figure out
what is going on. The earlier partial workaround can be removed now,
as the new workaround is better.
Fixes: 890f27693f
("media: imx: work around false-positive warning")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1b73ea8377
commit
2dacea4723
1 changed files with 4 additions and 1 deletions
|
@ -166,6 +166,9 @@ static int csi_get_upstream_endpoint(struct csi_priv *priv,
|
|||
struct v4l2_subdev *sd;
|
||||
struct media_pad *pad;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_OF))
|
||||
return -ENXIO;
|
||||
|
||||
if (!priv->src_sd)
|
||||
return -EPIPE;
|
||||
|
||||
|
@ -1072,7 +1075,7 @@ static int csi_link_validate(struct v4l2_subdev *sd,
|
|||
struct v4l2_subdev_format *sink_fmt)
|
||||
{
|
||||
struct csi_priv *priv = v4l2_get_subdevdata(sd);
|
||||
struct v4l2_fwnode_endpoint upstream_ep = {};
|
||||
struct v4l2_fwnode_endpoint upstream_ep;
|
||||
bool is_csi2;
|
||||
int ret;
|
||||
|
||||
|
|
Loading…
Reference in a new issue