Re: [PATCH 3/3] staging: xgifb: Initialize uninitialized variables

From: Greg KH
Date: Tue Sep 07 2010 - 20:38:13 EST


On Tue, Sep 07, 2010 at 10:46:27AM +0200, Jiri Slaby wrote:
> On 09/07/2010 07:34 AM, Javier Martinez Canillas wrote:
> > Current patch solves compilation warnings in staging/xgifb for using possibly uninitialized variables.
> >
> > Signed-off-by: Javier Martinez Canillas <martinez.javier@xxxxxxxxx>
> > ---
> > drivers/staging/xgifb/vb_setmode.c | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/staging/xgifb/vb_setmode.c b/drivers/staging/xgifb/vb_setmode.c
> > index c4db2fc..720a592 100644
> > --- a/drivers/staging/xgifb/vb_setmode.c
> > +++ b/drivers/staging/xgifb/vb_setmode.c
> > @@ -376,7 +376,7 @@ void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo)
> > unsigned char XGISetModeNew(struct xgi_hw_device_info *HwDeviceExtension,
> > unsigned short ModeNo)
> > {
> > - unsigned short ModeIdIndex;
> > + unsigned short ModeIdIndex = 0;
> > /* unsigned char *pVBInfo->FBAddr = HwDeviceExtension->pjVideoMemoryAddress; */
> > struct vb_device_info VBINF;
> > struct vb_device_info *pVBInfo = &VBINF;
>
> No, please don't. This is a compiler bug.
>
> The first use in that function is:
> XGI_SearchModeID( ModeNo , &ModeIdIndex, pVBInfo );
>
> and that function contains:
> if (XYZ) {
> for( *ModeIdIndex = 0 ; ; ( *ModeIdIndex )++ )
> ...
> } else {
> for( *ModeIdIndex = 0 ; ; ( *ModeIdIndex )++ )
> ...
> }
>
> So your compiler is foolish if that emits a warning.

No, I don't see a way that the compiler could really figure that type of
logic out. It doesn't know that XGI_SearchModeID() always will set that
field. Heck, at first glance I couldn't even figure it out :)

So I don't mind applying this patch, as I'll just constantly keep
getting people sending me the same change, when they could be off
working on other things that this driver needs.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/