Re: [PATCH] soc_camera: fix compiler warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 26 Jul 2013, Hans Verkuil wrote:

> Hi Guennadi,
> 
> On 07/26/2013 01:26 PM, Guennadi Liakhovetski wrote:
> > Hi Hans
> > 
> > Thanks for the patch.
> > 
> > On Thu, 25 Jul 2013, Hans Verkuil wrote:
> > 
> >>
> >> media_build/v4l/soc_camera.c: In function 'soc_camera_host_register':
> >> media_build/v4l/soc_camera.c:1513:10: warning: 'sasd' may be used uninitialized in this function [-Wmaybe-uninitialized]
> >>   snprintf(clk_name, sizeof(clk_name), "%d-%04x",
> >>           ^
> >> media_build/v4l/soc_camera.c:1464:34: note: 'sasd' was declared here
> >>   struct soc_camera_async_subdev *sasd;
> >>                                   ^
> > 
> > Heh, cool... You did report a similar warning earlier, for which I cooked 
> > up a patch "[media] V4L2: soc-camera: fix uninitialised use compiler 
> > warning" and IIRC you reported that with that patch the warning 
> > disappeared... How come we've got another one now? Have you updated your 
> > compiler again or what can be the reason?
> 
> It worked, but only for i686. The x86_64 compiler (exactly the same gcc version
> BTW) still couldn't understand that it really was initialized. See the build
> logs from the past few weeks.
> 
> > In principle I have nothing against this patch, just wondering where 
> > you're getting your compilers from ;-)
> 
> Well, the compiler is just downloaded from gnu.org and regularly updated when
> a new version is released.
> 
> The problem is not with the current git build, but with the compatibility builds.
> As far as I can tell different kernel versions may turn on or off different
> compiler warnings, so compiling for different kernels gives different results.

Ok, good...

> >> By changing the type of 'i' to unsigned and changing a condition we finally
> >> convince the compiler that sasd is really initialized.
> >>
> >> Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
> > 
> > I haven't got any more 3.11 fixed in my queue and we have to push this 
> > before -rc3 / rc4 ;) So, if you prefer, feel free to take it via your tree 
> > with my
> > 
> > Acked-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> 
> This is just for 3.12, there is no need to go to 3.11 for this since the warning
> doesn't appear when compiling 3.11.
> 
> Do you still want me to take it, or do you prefer to queue it for 3.12 yourself?
> For the record, I expect to post a pull request for 3.12 today or Monday at the
> latest, so it's no problem for me.

I'll take it then

Thanks
Guennadi

> 	Hans
> 
> > 
> > Thanks
> > Guennadi
> > 
> >> ---
> >>  drivers/media/platform/soc_camera/soc_camera.c | 5 +++--
> >>  1 file changed, 3 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c
> >> index 2dd0e52..ed7a99f 100644
> >> --- a/drivers/media/platform/soc_camera/soc_camera.c
> >> +++ b/drivers/media/platform/soc_camera/soc_camera.c
> >> @@ -1466,7 +1466,8 @@ static int scan_async_group(struct soc_camera_host *ici,
> >>  	struct soc_camera_device *icd;
> >>  	struct soc_camera_desc sdesc = {.host_desc.bus_id = ici->nr,};
> >>  	char clk_name[V4L2_SUBDEV_NAME_SIZE];
> >> -	int ret, i;
> >> +	unsigned int i;
> >> +	int ret;
> >>  
> >>  	/* First look for a sensor */
> >>  	for (i = 0; i < size; i++) {
> >> @@ -1475,7 +1476,7 @@ static int scan_async_group(struct soc_camera_host *ici,
> >>  			break;
> >>  	}
> >>  
> >> -	if (i == size || asd[i]->bus_type != V4L2_ASYNC_BUS_I2C) {
> >> +	if (i >= size || asd[i]->bus_type != V4L2_ASYNC_BUS_I2C) {
> >>  		/* All useless */
> >>  		dev_err(ici->v4l2_dev.dev, "No I2C data source found!\n");
> >>  		return -ENODEV;
> >> -- 
> >> 1.8.3.2

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
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




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux