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

Greg KH gregkh at suse.de
Wed Sep 8 00:38:21 UTC 2010


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 at gmail.com>
> > ---
> >  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



More information about the devel mailing list