On Mon June 24 2013 11:32:32 Guennadi Liakhovetski wrote: > In scan_async_group() if the size parameter is negative, the sasd pointer > will be used uninitialised: > > drivers/media/platform/soc_camera/soc_camera.c: In function "soc_camera_host_register": > drivers/media/platform/soc_camera/soc_camera.c:1514:55: warning: "sasd" may > be used uninitialized in this function [-Wmaybe-uninitialized] > sasd->asd.match.i2c.adapter_id, sasd->asd.match.i2c.address); > ^ > drivers/media/platform/soc_camera/soc_camera.c:1464:34: note: "sasd" was > declared here > struct soc_camera_async_subdev *sasd; > > Fix this by making "size" and the array, from which it is assigned unsigned. > > Reported-by: Hans Verkuil <hverkuil@xxxxxxxxx> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx> > --- > > Hi Hans. None of my 2 cross-compilers produce the above warning. Could you > verify, that this fixes the warning, that you've seen? Acked-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> That fixes it. I've updated my cross-compilers to 4.8.1, it might be related to that. For some reason the daily build always sees more warnings than I get when I compile 'normally'. I've never understood why, but since the warnings are valid, I'm not complaining :-) Hans > > Thanks > Guennadi > > drivers/media/platform/soc_camera/soc_camera.c | 2 +- > include/media/sh_mobile_ceu.h | 2 +- > include/media/soc_camera.h | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c > index 2e47b51..2dd0e52 100644 > --- a/drivers/media/platform/soc_camera/soc_camera.c > +++ b/drivers/media/platform/soc_camera/soc_camera.c > @@ -1459,7 +1459,7 @@ static int soc_camera_async_complete(struct v4l2_async_notifier *notifier) > } > > static int scan_async_group(struct soc_camera_host *ici, > - struct v4l2_async_subdev **asd, int size) > + struct v4l2_async_subdev **asd, unsigned int size) > { > struct soc_camera_async_subdev *sasd; > struct soc_camera_async_client *sasc; > diff --git a/include/media/sh_mobile_ceu.h b/include/media/sh_mobile_ceu.h > index 8937241..7f57056 100644 > --- a/include/media/sh_mobile_ceu.h > +++ b/include/media/sh_mobile_ceu.h > @@ -23,7 +23,7 @@ struct sh_mobile_ceu_info { > int max_height; > struct sh_mobile_ceu_companion *csi2; > struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */ > - int *asd_sizes; /* 0-terminated array pf asd group sizes */ > + unsigned int *asd_sizes; /* 0-terminated array pf asd group sizes */ > }; > > #endif /* __ASM_SH_MOBILE_CEU_H__ */ > diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h > index 906ed98..34d2414 100644 > --- a/include/media/soc_camera.h > +++ b/include/media/soc_camera.h > @@ -87,7 +87,7 @@ struct soc_camera_host { > const char *drv_name; > struct soc_camera_host_ops *ops; > struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */ > - int *asd_sizes; /* 0-terminated array of asd group sizes */ > + unsigned int *asd_sizes; /* 0-terminated array of asd group sizes */ > }; > > struct soc_camera_host_ops { > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html