On Mon, 2 Mar. 2020, 07:09 Chen Qun, <kuhn.chenqun@huawei.com> wrote:
> Clang static code analyzer show warning:
> hw/dma/xlnx-zdma.c:399:13: warning: Value stored to 'dst_type' is never
> read
> dst_type = FIELD_EX32(s->dsc_dst.words[3],
> ZDMA_CH_DST_DSCR_WORD3,
>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
^
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> ---
> Cc: Alistair Francis <alistair@alistair23.me>
> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
>
> v1->v2: move the 'dst_type' declaration.(Base on Philippe's suggestion).
> ---
> hw/dma/xlnx-zdma.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
> index 8fb83f5b07..eeacad59ce 100644
> --- a/hw/dma/xlnx-zdma.c
> +++ b/hw/dma/xlnx-zdma.c
> @@ -373,7 +373,7 @@ static uint64_t zdma_update_descr_addr(XlnxZDMA *s,
> bool type,
> static void zdma_write_dst(XlnxZDMA *s, uint8_t *buf, uint32_t len)
> {
> uint32_t dst_size, dlen;
> - bool dst_intr, dst_type;
> + bool dst_intr;
> unsigned int ptype = ARRAY_FIELD_EX32(s->regs, ZDMA_CH_CTRL0,
> POINT_TYPE);
> unsigned int rw_mode = ARRAY_FIELD_EX32(s->regs, ZDMA_CH_CTRL0, MODE);
> unsigned int burst_type = ARRAY_FIELD_EX32(s->regs, ZDMA_CH_DATA_ATTR,
> @@ -387,17 +387,17 @@ static void zdma_write_dst(XlnxZDMA *s, uint8_t
> *buf, uint32_t len)
> while (len) {
> dst_size = FIELD_EX32(s->dsc_dst.words[2], ZDMA_CH_DST_DSCR_WORD2,
> SIZE);
> - dst_type = FIELD_EX32(s->dsc_dst.words[3], ZDMA_CH_DST_DSCR_WORD3,
> - TYPE);
> if (dst_size == 0 && ptype == PT_MEM) {
> uint64_t next;
> + bool dst_type = FIELD_EX32(s->dsc_dst.words[3],
> + ZDMA_CH_DST_DSCR_WORD3,
> + TYPE);
> +
> next = zdma_update_descr_addr(s, dst_type,
> R_ZDMA_CH_DST_CUR_DSCR_LSB);
> zdma_load_descriptor(s, next, &s->dsc_dst);
> dst_size = FIELD_EX32(s->dsc_dst.words[2],
> ZDMA_CH_DST_DSCR_WORD2,
> SIZE);
> - dst_type = FIELD_EX32(s->dsc_dst.words[3],
> ZDMA_CH_DST_DSCR_WORD3,
> - TYPE);
> }
>
> /* Match what hardware does by ignoring the dst_size and only
> using
> --
> 2.23.0
>
>
>