>-----Original Message-----
>From: Laurent Pinchart <[email protected]>
>Sent: 2020年8月12日 6:50
>To: kernel test robot <[email protected]>
>Cc: Hyun Kwon <[email protected]>; [email protected]; linux-
>[email protected]; Vinod Koul <[email protected]>; Tejas Upadhyay
><[email protected]>; Michal Simek <[email protected]>
>Subject: [kbuild-all] Re: drivers/dma/xilinx/xilinx_dpdma.c:1172
>xilinx_dpdma_synchronize() error: double unlocked 'chan->vchan.lock' (orig line
>1170)
>
>On Wed, Aug 12, 2020 at 06:37:59AM +0800, kernel test robot wrote:
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>> master
>> head:   c636eef2ee3696f261a35f34989842701a107895
>> commit: 7cbb0c63de3fc218fd06ecfedb477772a4d12f76 dmaengine: xilinx:
>dpdma: Add the Xilinx DisplayPort DMA engine driver
>> date:   4 weeks ago
>> config: h8300-randconfig-m031-20200811 (attached as .config)
>> compiler: h8300-linux-gcc (GCC) 9.3.0
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <[email protected]>
>>
>> smatch warnings:
>> drivers/dma/xilinx/xilinx_dpdma.c:1172 xilinx_dpdma_synchronize()
>> error: double unlocked 'chan->vchan.lock' (orig line 1170)
>
>Unless I'm mistaken, this is a false positive. I'd appreciate if someone could 
>check
>if I'm missing something obvious.

Please ignore this report. It is a false positive. 
We have changed the rule to avoid send out this warning type directly. Sorry 
for inconvenient.

Best Regards,
Hui

>
>> vim +1172 drivers/dma/xilinx/xilinx_dpdma.c
>>
>>   1140
>>   1141       /**
>>   1142        * xilinx_dpdma_synchronize - Synchronize callback execution
>>   1143        * @dchan: DMA channel
>>   1144        *
>>   1145        * Synchronizing callback execution ensures that all previously 
>> issued
>>   1146        * transfers have completed and all associated callbacks have 
>> been called
>and
>>   1147        * have returned.
>>   1148        *
>>   1149        * This function waits for the DMA channel to stop. It assumes 
>> it has been
>>   1150        * paused by a previous call to dmaengine_terminate_async(), 
>> and that
>no new
>>   1151        * pending descriptors have been issued with 
>> dma_async_issue_pending().
>The
>>   1152        * behaviour is undefined otherwise.
>>   1153        */
>>   1154       static void xilinx_dpdma_synchronize(struct dma_chan *dchan)
>>   1155       {
>>   1156               struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
>>   1157               unsigned long flags;
>>   1158
>>   1159               xilinx_dpdma_chan_stop(chan);
>>   1160
>>   1161               spin_lock_irqsave(&chan->vchan.lock, flags);
>>   1162               if (chan->desc.pending) {
>>   1163                       
>> vchan_terminate_vdesc(&chan->desc.pending->vdesc);
>>   1164                       chan->desc.pending = NULL;
>>   1165               }
>>   1166               if (chan->desc.active) {
>>   1167                       
>> vchan_terminate_vdesc(&chan->desc.active->vdesc);
>>   1168                       chan->desc.active = NULL;
>>   1169               }
>> > 1170               spin_unlock_irqrestore(&chan->vchan.lock, flags);
>>   1171
>> > 1172               vchan_synchronize(&chan->vchan);
>>   1173       }
>>   1174
>>
>
>--
>Regards,
>
>Laurent Pinchart
>_______________________________________________
>kbuild-all mailing list -- [email protected] To unsubscribe send an 
>email to
>[email protected]

Reply via email to