Re: [PATCH] bnx2fc: shift wrapping bug in bnx2fc_process_unsol_compl()

From: Dan Carpenter
Date: Mon Nov 28 2016 - 08:25:39 EST


On Sat, Nov 26, 2016 at 07:36:29PM +0100, Christophe JAILLET wrote:
> BNX2FC_NUM_ERR_BITS is 63. err_warn_bit_map is a u64. So, to make sure that
> no shift wrapping will occur, we need need additionnal casting.
>
> The same test is already done a few lines above and '(u64)1' is already
> used there. So just do the same here.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> I guess that this could also be written with a '1ULL << i' which would be
> cleaner and less verbose IMHO, but apparently this driver does not use
> such things yet. So keep the current style with casting.

Ugh... No. This is not code to emulate. Use 1ULL << i. Even if we
did the cast, you would only need one:

if (err_warn_bit_map & ((u64)1 << i)) {


regards,
dan carpenter