lkml.org 
[lkml]   [2018]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] net: qla3xxx: Remove overflowing shift statement
From
From: Nathan Chancellor <natechancellor@gmail.com>
Date: Fri, 12 Oct 2018 19:14:58 -0700

> Clang currently warns:
>
> drivers/net/ethernet/qlogic/qla3xxx.c:384:24: warning: signed shift
> result (0xF00000000) requires 37 bits to represent, but 'int' only has
> 32 bits [-Wshift-overflow]
> ((ISP_NVRAM_MASK << 16) | qdev->eeprom_cmd_data));
> ~~~~~~~~~~~~~~ ^ ~~
> 1 warning generated.
>
> The warning is certainly accurate since ISP_NVRAM_MASK is defined as
> (0x000F << 16) which is then shifted by 16, resulting in 64424509440,
> well above UINT_MAX.
>
> Given that this is the only location in this driver where ISP_NVRAM_MASK
> is shifted again, it seems likely that ISP_NVRAM_MASK was originally
> defined without a shift and during the move of the shift to the
> definition, this statement wasn't properly removed (since ISP_NVRAM_MASK
> is used in the statenent right above this). Only the maintainers can
> confirm this since this statment has been here since the driver was
> first added to the kernel.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/127
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

If the qlogic/cavium folks aren't even going to look at and comment
on this, that is not fair to you and your change.

Applied, thanks Nathan.

\
 
 \ /
  Last update: 2018-10-18 06:54    [W:0.065 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site