Messages in this thread | | | From | "Elliott, Robert (Persistent Memory)" <> | Subject | RE: [PATCH] floppy: fix harmless clang build warning | Date | Wed, 13 Mar 2019 22:01:43 +0000 |
| |
> -----Original Message----- > From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Arnd > Bergmann > Sent: Wednesday, March 13, 2019 4:11 PM > To: Jiri Kosina <jikos@kernel.org>; Jens Axboe <axboe@kernel.dk> > Cc: Arnd Bergmann <arnd@arndb.de>; Omar Sandoval <osandov@fb.com>; Hannes Reinecke <hare@suse.de>; > linux-block@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: [PATCH] floppy: fix harmless clang build warning > > clang warns about unusual code in floppy.c that looks like it > was intended to be a bit mask operation, checking for a specific > bit in the UDP->cmos variable (FLOPPY1_TYPE expands to '4' on > ARM): > > drivers/block/floppy.c:3902:17: error: use of logical '&&' with constant operand [-Werror,-Wconstant- > logical-operand] > if (!UDP->cmos && FLOPPY1_TYPE) > ^ ~~~~~~~~~~~~ > drivers/block/floppy.c:3902:17: note: use '&' for a bitwise operation > if (!UDP->cmos && FLOPPY1_TYPE) > > The check here is redundant anyway, if FLOPPY1_TYPE is zero, then > assigning it to a zero UDP->cmos field does not change anything, > so removing the extra check here has no effect other than shutting > up the warning. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/block/floppy.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c > index 95f608d1a098..56815446ed85 100644 > --- a/drivers/block/floppy.c > +++ b/drivers/block/floppy.c > @@ -3899,7 +3899,7 @@ static void __init config_types(void) > if (!UDP->cmos) > UDP->cmos = FLOPPY0_TYPE; > drive = 1; > - if (!UDP->cmos && FLOPPY1_TYPE) > + if (!UDP->cmos) > UDP->cmos = FLOPPY1_TYPE; > > /* FIXME: additional physical CMOS drive detection should go here */ > -- > 2.20.0
On x86 it expands to a hardware read, so this would change the control flow.
#define FLOPPY1_TYPE \ ({ \ unsigned long flags; \ unsigned char val; \ spin_lock_irqsave(&rtc_lock, flags); \ val = CMOS_READ(0x10) & 15; \ spin_unlock_irqrestore(&rtc_lock, flags); \ val; \ })
| |