diff mbox series

[09/13] dma/xlnx-zdma: Remove redundant statement in zdma_write_dst()

Message ID 20200225020937.25028-10-kuhn.chenqun@huawei.com
State New
Headers show
Series redundant code: Fix warnings reported by Clang static code analyzer | expand

Commit Message

Chen Qun Feb. 25, 2020, 2:09 a.m. UTC
From: Chen Qun <kuhn.chenqun@huawei.com>

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,
            ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
---
Cc: Alistair Francis <alistair@alistair23.me>
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-arm@nongnu.org
---
 hw/dma/xlnx-zdma.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Philippe Mathieu-Daudé Feb. 25, 2020, 9:36 a.m. UTC | #1
On 2/25/20 3:09 AM, kuhn.chenqun@huawei.com wrote:
> From: Chen Qun <kuhn.chenqun@huawei.com>
> 
> 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,
>              ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
> ---
> Cc: Alistair Francis <alistair@alistair23.me>
> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: qemu-arm@nongnu.org
> ---
>   hw/dma/xlnx-zdma.c | 2 --
>   1 file changed, 2 deletions(-)
> 
> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
> index 8fb83f5b07..45355c5d59 100644
> --- a/hw/dma/xlnx-zdma.c
> +++ b/hw/dma/xlnx-zdma.c
> @@ -396,8 +396,6 @@ static void zdma_write_dst(XlnxZDMA *s, uint8_t *buf, uint32_t len)
>               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);

Maybe move dst_type to this if() statement now?

>           }
>   
>           /* Match what hardware does by ignoring the dst_size and only using
>
Chen Qun Feb. 25, 2020, 10:01 a.m. UTC | #2
>-----Original Message-----
>From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
>Sent: Tuesday, February 25, 2020 5:36 PM
>To: Chenqun (kuhn) <kuhn.chenqun@huawei.com>; qemu-
>devel@nongnu.org; qemu-trivial@nongnu.org
>Cc: peter.maydell@linaro.org; Zhanghailiang
><zhang.zhanghailiang@huawei.com>; Alistair Francis <alistair@alistair23.me>;
>qemu-arm@nongnu.org
>Subject: Re: [PATCH 09/13] dma/xlnx-zdma: Remove redundant statement in
>zdma_write_dst()
>
>On 2/25/20 3:09 AM, kuhn.chenqun@huawei.com wrote:
>> From: Chen Qun <kuhn.chenqun@huawei.com>
>>
>> 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,
>>              ^
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> Reported-by: Euler Robot <euler.robot@huawei.com>
>> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
>> ---
>> Cc: Alistair Francis <alistair@alistair23.me>
>> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
>> Cc: Peter Maydell <peter.maydell@linaro.org>
>> Cc: qemu-arm@nongnu.org
>> ---
>>   hw/dma/xlnx-zdma.c | 2 --
>>   1 file changed, 2 deletions(-)
>>
>> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c index
>> 8fb83f5b07..45355c5d59 100644
>> --- a/hw/dma/xlnx-zdma.c
>> +++ b/hw/dma/xlnx-zdma.c
>> @@ -396,8 +396,6 @@ static void zdma_write_dst(XlnxZDMA *s, uint8_t
>*buf, uint32_t len)
>>               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);
>
>Maybe move dst_type to this if() statement now?
>
Sorry, I don't follow you.   I didn't find where I could move dst_type.
Do you mean to move the first dst_type to the if().  
Modify it like this:
    while (len) {
        dst_size = FIELD_EX32(s->dsc_dst.words[2], ZDMA_CH_DST_DSCR_WORD2,
                              SIZE);
        if (dst_size == 0 && ptype == PT_MEM) {
            uint64_t next;
            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);
        }
       ...
   }

Thanks.
>>           }
>>
>>           /* Match what hardware does by ignoring the dst_size and
>> only using
>>
Philippe Mathieu-Daudé Feb. 25, 2020, 10:11 a.m. UTC | #3
On 2/25/20 11:01 AM, Chenqun (kuhn) wrote:
>> -----Original Message-----
>> From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
>> Sent: Tuesday, February 25, 2020 5:36 PM
>> To: Chenqun (kuhn) <kuhn.chenqun@huawei.com>; qemu-
>> devel@nongnu.org; qemu-trivial@nongnu.org
>> Cc: peter.maydell@linaro.org; Zhanghailiang
>> <zhang.zhanghailiang@huawei.com>; Alistair Francis <alistair@alistair23.me>;
>> qemu-arm@nongnu.org
>> Subject: Re: [PATCH 09/13] dma/xlnx-zdma: Remove redundant statement in
>> zdma_write_dst()
>>
>> On 2/25/20 3:09 AM, kuhn.chenqun@huawei.com wrote:
>>> From: Chen Qun <kuhn.chenqun@huawei.com>
>>>
>>> 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,
>>>               ^
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>
>>> Reported-by: Euler Robot <euler.robot@huawei.com>
>>> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
>>> ---
>>> Cc: Alistair Francis <alistair@alistair23.me>
>>> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
>>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>> Cc: qemu-arm@nongnu.org
>>> ---
>>>    hw/dma/xlnx-zdma.c | 2 --
>>>    1 file changed, 2 deletions(-)
>>>
>>> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c index
>>> 8fb83f5b07..45355c5d59 100644
>>> --- a/hw/dma/xlnx-zdma.c
>>> +++ b/hw/dma/xlnx-zdma.c
>>> @@ -396,8 +396,6 @@ static void zdma_write_dst(XlnxZDMA *s, uint8_t
>> *buf, uint32_t len)
>>>                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);
>>
>> Maybe move dst_type to this if() statement now?
>>
> Sorry, I don't follow you.   I didn't find where I could move dst_type.
> Do you mean to move the first dst_type to the if().
> Modify it like this:
>      while (len) {
>          dst_size = FIELD_EX32(s->dsc_dst.words[2], ZDMA_CH_DST_DSCR_WORD2,
>                                SIZE);
>          if (dst_size == 0 && ptype == PT_MEM) {
>              uint64_t next;
>              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);
>          }
>         ...
>     }

No, like this:

-- >8 --
@@ -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;
+
+            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);
          }
---
Chen Qun Feb. 25, 2020, 10:25 a.m. UTC | #4
>-----Original Message-----
>From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
>Sent: Tuesday, February 25, 2020 6:12 PM
>To: Chenqun (kuhn) <kuhn.chenqun@huawei.com>; qemu-
>devel@nongnu.org; qemu-trivial@nongnu.org
>Cc: peter.maydell@linaro.org; Zhanghailiang
><zhang.zhanghailiang@huawei.com>; Alistair Francis <alistair@alistair23.me>;
>qemu-arm@nongnu.org
>Subject: Re: [PATCH 09/13] dma/xlnx-zdma: Remove redundant statement in
>zdma_write_dst()
>
>On 2/25/20 11:01 AM, Chenqun (kuhn) wrote:
>>> -----Original Message-----
>>> From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
>>> Sent: Tuesday, February 25, 2020 5:36 PM
>>> To: Chenqun (kuhn) <kuhn.chenqun@huawei.com>; qemu-
>devel@nongnu.org;
>>> qemu-trivial@nongnu.org
>>> Cc: peter.maydell@linaro.org; Zhanghailiang
>>> <zhang.zhanghailiang@huawei.com>; Alistair Francis
>>> <alistair@alistair23.me>; qemu-arm@nongnu.org
>>> Subject: Re: [PATCH 09/13] dma/xlnx-zdma: Remove redundant statement
>>> in
>>> zdma_write_dst()
>>>
>>> On 2/25/20 3:09 AM, kuhn.chenqun@huawei.com wrote:
>>>> From: Chen Qun <kuhn.chenqun@huawei.com>
>>>>
>>>> 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,
>>>>               ^
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>
>>>> Reported-by: Euler Robot <euler.robot@huawei.com>
>>>> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
>>>> ---
>>>> Cc: Alistair Francis <alistair@alistair23.me>
>>>> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
>>>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>>> Cc: qemu-arm@nongnu.org
>>>> ---
>>>>    hw/dma/xlnx-zdma.c | 2 --
>>>>    1 file changed, 2 deletions(-)
>>>>
>>>> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c index
>>>> 8fb83f5b07..45355c5d59 100644
>>>> --- a/hw/dma/xlnx-zdma.c
>>>> +++ b/hw/dma/xlnx-zdma.c
>>>> @@ -396,8 +396,6 @@ static void zdma_write_dst(XlnxZDMA *s, uint8_t
>>> *buf, uint32_t len)
>>>>                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);
>>>
>>> Maybe move dst_type to this if() statement now?
>>>
>> Sorry, I don't follow you.   I didn't find where I could move dst_type.
>> Do you mean to move the first dst_type to the if().
>> Modify it like this:
>>      while (len) {
>>          dst_size = FIELD_EX32(s->dsc_dst.words[2],
>ZDMA_CH_DST_DSCR_WORD2,
>>                                SIZE);
>>          if (dst_size == 0 && ptype == PT_MEM) {
>>              uint64_t next;
>>              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);
>>          }
>>         ...
>>     }
>
>No, like this:
>
>-- >8 --
>@@ -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;
>+
>+            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);
>          }
Hmm,  this is better. 
I will modify it later in V2.

Thanks.
>---
diff mbox series

Patch

diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
index 8fb83f5b07..45355c5d59 100644
--- a/hw/dma/xlnx-zdma.c
+++ b/hw/dma/xlnx-zdma.c
@@ -396,8 +396,6 @@  static void zdma_write_dst(XlnxZDMA *s, uint8_t *buf, uint32_t len)
             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