Message ID | 20190619131959.2055400-1-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RESEND] floppy: fix harmless clang build warning | expand |
On 6/19/19 7:19 AM, Arnd Bergmann wrote: > 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. > > On x86, this will no longer read a hardware register, as the > FLOPPY1_TYPE macro is not expanded if UDP->cmos is already > zero, but the result is the same. Applied, thanks.
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 9fb9b312ab6b..b933a7eea52b 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -3900,7 +3900,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 */
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. On x86, this will no longer read a hardware register, as the FLOPPY1_TYPE macro is not expanded if UDP->cmos is already zero, but the result is the same. Cc: Robert Elliott <elliott@hpe.com> Cc: Keith Busch <kbusch@kernel.org> Link: https://patchwork.kernel.org/patch/10851841/ Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- The original patch did not get merged since there was some discussion (see link), but as far as I can tell, the outcome was that it's harmless so I just summarized the findings above. The patch is unchanged from March. --- drivers/block/floppy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)