Re: [PATCH]: fixing gcc 4.4 compiler warning: suggest parentheses around operand of ‘!’

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

 



On Fri, 2009-05-01 at 00:59 +0300, Sergey Senozhatsky wrote:
> On (30/04/09 21:31), James Bottomley wrote:
> > To: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxx>
> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, linux-scsi@xxxxxxxxxxxxxxx,
> > 	Kai Makisara <Kai.Makisara@xxxxxxxxxxx>
> > From: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
> > Subject: Re: [PATCH]: fixing gcc 4.4 compiler warning: suggest parentheses
> > 	around operand of ‘!’
> > 
> > On Thu, 2009-04-30 at 09:04 +0300, Sergey Senozhatsky wrote:
> > > Trivial: fixing gcc 4.4 compiler warning:
> > > drivers/scsi/st.c: In function ‘st_int_ioctl’:
> > > drivers/scsi/st.c:2967: warning: suggest parentheses around operand of ‘!’ or change ‘|’ to ‘||’ or ‘!’ to ‘~’
> > > 
> > > Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxx>
> > > 
> > > ---
> > > 
> > > diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
> > > index eb24efe..2bde8a5 100644
> > > --- a/drivers/scsi/st.c
> > > +++ b/drivers/scsi/st.c
> > > @@ -2964,7 +2964,7 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon
> > >  			    !(STp->use_pf & PF_TESTED)) {
> > >  				/* Try the other possible state of Page Format if not
> > >  				   already tried */
> > > -				STp->use_pf = !STp->use_pf | PF_TESTED;
> > > +				STp->use_pf = (!STp->use_pf) | PF_TESTED;
> > 
> 
> > This just doesn't look right.  As I said to the warning reporter, I
> > think STp->use_pf |= PF_TESTED; is the correct fix, but I need Kai to
> > check this.
> > 
> > James
> > 
> 
> Hello James.
> It's not clear to me why STp->use_pf |= PF_TESTED; is correct fix 
> (since STp->use_pf = (!STp->use_pf) | PF_TESTED; is not equals to STp->use_pf |= PF_TESTED;).
> 
> Would you provide some explanations?

Well, I know why (!STp->use_pf) is wrong: it would set USE_PF in an
incredibly obscure fashon.  The flag PF_TESTED seems to imply that it's
a don't check this again type deal, and the if clause is looking for it
not being set, hence I think the most likely thing to be done here is
set the PF_TESTED flag.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux