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