Message ID | 20200225020937.25028-10-kuhn.chenqun@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | redundant code: Fix warnings reported by Clang static code analyzer | expand |
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 >
>-----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 >>
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); } ---
>-----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 --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