lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKwvOdmFc3RfHMVxdym9upmck=h6AnNW58ho+0ferOUVkaxajw@mail.gmail.com>
Date:   Tue, 13 Aug 2019 13:43:03 -0700
From:   Nick Desaulniers <ndesaulniers@...gle.com>
To:     Nathan Huckleberry <nhuck@...gle.com>
Cc:     Dan Williams <dan.j.williams@...el.com>,
        Vinod Koul <vkoul@...nel.org>, dmaengine@...r.kernel.org,
        LKML <linux-kernel@...r.kernel.org>,
        clang-built-linux <clang-built-linux@...glegroups.com>
Subject: Re: [PATCH v2] dmaengine: mv_xor_v2: Fix -Wshift-negative-value

On Tue, Aug 13, 2019 at 10:35 AM 'Nathan Huckleberry' via Clang Built
Linux <clang-built-linux@...glegroups.com> wrote:
>
> Clang produces the following warning
>
> drivers/dma/mv_xor_v2.c:264:40: warning: shifting a negative signed value
>         is undefined [-Wshift-negative-value]
>         reg &= (~MV_XOR_V2_DMA_IMSG_THRD_MASK <<
>         MV_XOR_V2_DMA_IMSG_THRD_SHIFT);
>                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
> drivers/dma/mv_xor_v2.c:271:46: warning: shifting a negative signed value
>         is undefined [-Wshift-negative-value]
>         reg &= (~MV_XOR_V2_DMA_IMSG_TIMER_THRD_MASK <<
>                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
>
> Upon further investigation MV_XOR_V2_DMA_IMSG_THRD_SHIFT and
> MV_XOR_V2_DMA_IMSG_TIMER_THRD_SHIFT are both 0. Since shifting by 0 does
> nothing, these variables can be removed.
>
> Cc: clang-built-linux@...glegroups.com
> Link: https://github.com/ClangBuiltLinux/linux/issues/521
> Signed-off-by: Nathan Huckleberry <nhuck@...gle.com>

Thanks for sending a v2:
Reviewed-by: Nick Desaulniers <ndesaulniers@...gle.com>

> ---
>  drivers/dma/mv_xor_v2.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/dma/mv_xor_v2.c b/drivers/dma/mv_xor_v2.c
> index fa5dab481203..e3850f04f676 100644
> --- a/drivers/dma/mv_xor_v2.c
> +++ b/drivers/dma/mv_xor_v2.c
> @@ -33,7 +33,6 @@
>  #define MV_XOR_V2_DMA_IMSG_CDAT_OFF                    0x014
>  #define MV_XOR_V2_DMA_IMSG_THRD_OFF                    0x018
>  #define   MV_XOR_V2_DMA_IMSG_THRD_MASK                 0x7FFF
> -#define   MV_XOR_V2_DMA_IMSG_THRD_SHIFT                        0x0
>  #define   MV_XOR_V2_DMA_IMSG_TIMER_EN                  BIT(18)
>  #define MV_XOR_V2_DMA_DESQ_AWATTR_OFF                  0x01C
>    /* Same flags as MV_XOR_V2_DMA_DESQ_ARATTR_OFF */
> @@ -50,7 +49,6 @@
>  #define MV_XOR_V2_DMA_DESQ_ADD_OFF                     0x808
>  #define MV_XOR_V2_DMA_IMSG_TMOT                                0x810
>  #define   MV_XOR_V2_DMA_IMSG_TIMER_THRD_MASK           0x1FFF
> -#define   MV_XOR_V2_DMA_IMSG_TIMER_THRD_SHIFT          0
>
>  /* XOR Global registers */
>  #define MV_XOR_V2_GLOB_BW_CTRL                         0x4
> @@ -261,16 +259,15 @@ void mv_xor_v2_enable_imsg_thrd(struct mv_xor_v2_device *xor_dev)
>
>         /* Configure threshold of number of descriptors, and enable timer */
>         reg = readl(xor_dev->dma_base + MV_XOR_V2_DMA_IMSG_THRD_OFF);
> -       reg &= (~MV_XOR_V2_DMA_IMSG_THRD_MASK << MV_XOR_V2_DMA_IMSG_THRD_SHIFT);
> -       reg |= (MV_XOR_V2_DONE_IMSG_THRD << MV_XOR_V2_DMA_IMSG_THRD_SHIFT);
> +       reg &= ~MV_XOR_V2_DMA_IMSG_THRD_MASK;
> +       reg |= MV_XOR_V2_DONE_IMSG_THRD;
>         reg |= MV_XOR_V2_DMA_IMSG_TIMER_EN;
>         writel(reg, xor_dev->dma_base + MV_XOR_V2_DMA_IMSG_THRD_OFF);
>
>         /* Configure Timer Threshold */
>         reg = readl(xor_dev->dma_base + MV_XOR_V2_DMA_IMSG_TMOT);
> -       reg &= (~MV_XOR_V2_DMA_IMSG_TIMER_THRD_MASK <<
> -               MV_XOR_V2_DMA_IMSG_TIMER_THRD_SHIFT);
> -       reg |= (MV_XOR_V2_TIMER_THRD << MV_XOR_V2_DMA_IMSG_TIMER_THRD_SHIFT);
> +       reg &= ~MV_XOR_V2_DMA_IMSG_TIMER_THRD_MASK;
> +       reg |= MV_XOR_V2_TIMER_THRD;
>         writel(reg, xor_dev->dma_base + MV_XOR_V2_DMA_IMSG_TMOT);
>  }
>
> --
> 2.23.0.rc1.153.gdeed80330f-goog
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@...glegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20190813173448.109859-1-nhuck%40google.com.



-- 
Thanks,
~Nick Desaulniers

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ