[ These Smatch readl() tests don't have false positives but it's also
  not clear how welcome the reports are.  If readl() starts failing
  then either you have hot plug hardware or your whole system is dead
  anyway.

  I guess let's send out a few of these reports and see if anyone
  responds.  -dan ]

tree:   git://github.com/mripard/linux dmaengine-generic-caps
head:   d49e9ec6df0243b89641d9c966f448cd3798533a
commit: a0d7f2291bd47b1a39ace988f36eb1d737632304 [13/60] dmaengine: at_xdmac: 
split device_control

New smatch warnings:
drivers/dma/at_xdmac.c:1158 at_xdmac_device_terminate_all() warn: this loop 
depends on readl() succeeding

Old smatch warnings:
drivers/dma/at_xdmac.c:933 at_xdmac_tx_status() warn: inconsistent returns 
'spin_lock:&atchan->lock'.

[ Oh crap.  This is definitely a bug, but I can't reproduce it on my
  end.  I'll debug this.  The warning message is not complete.  It
  should say:

Unlocked: 887, 890, 993
  Locked: 902

  - dan ]

git remote add sunxi git://github.com/mripard/linux
git remote update sunxi
git checkout a0d7f2291bd47b1a39ace988f36eb1d737632304
vim +1158 drivers/dma/at_xdmac.c

e1f7c9ee Ludovic Desroches 2014-10-22  1142     
clear_bit(AT_XDMAC_CHAN_IS_PAUSED, &atchan->status);
a0d7f229 Ludovic Desroches 2014-11-13  1143     spin_unlock_bh(&atchan->lock);
a0d7f229 Ludovic Desroches 2014-11-13  1144  
a0d7f229 Ludovic Desroches 2014-11-13  1145     return 0;
a0d7f229 Ludovic Desroches 2014-11-13  1146  }
a0d7f229 Ludovic Desroches 2014-11-13  1147  
a0d7f229 Ludovic Desroches 2014-11-13  1148  static int 
at_xdmac_device_terminate_all(struct dma_chan *chan)
a0d7f229 Ludovic Desroches 2014-11-13  1149  {
a0d7f229 Ludovic Desroches 2014-11-13  1150     struct at_xdmac_desc    *desc, 
*_desc;
a0d7f229 Ludovic Desroches 2014-11-13  1151     struct at_xdmac_chan    *atchan 
= to_at_xdmac_chan(chan);
a0d7f229 Ludovic Desroches 2014-11-13  1152     struct at_xdmac         
*atxdmac = to_at_xdmac(atchan->chan.device);
e1f7c9ee Ludovic Desroches 2014-10-22  1153  
a0d7f229 Ludovic Desroches 2014-11-13  1154     dev_dbg(chan2dev(chan), "%s\n", 
__func__);
a0d7f229 Ludovic Desroches 2014-11-13  1155  
a0d7f229 Ludovic Desroches 2014-11-13  1156     spin_lock_bh(&atchan->lock);
e1f7c9ee Ludovic Desroches 2014-10-22  1157     at_xdmac_write(atxdmac, 
AT_XDMAC_GD, atchan->mask);
e1f7c9ee Ludovic Desroches 2014-10-22 @1158     while (at_xdmac_read(atxdmac, 
AT_XDMAC_GS) & atchan->mask)
e1f7c9ee Ludovic Desroches 2014-10-22  1159             cpu_relax();
e1f7c9ee Ludovic Desroches 2014-10-22  1160  
e1f7c9ee Ludovic Desroches 2014-10-22  1161     /* Cancel all pending 
transfers. */
e1f7c9ee Ludovic Desroches 2014-10-22  1162     list_for_each_entry_safe(desc, 
_desc, &atchan->xfers_list, xfer_node)
e1f7c9ee Ludovic Desroches 2014-10-22  1163             
at_xdmac_remove_xfer(atchan, desc);
e1f7c9ee Ludovic Desroches 2014-10-22  1164  
e1f7c9ee Ludovic Desroches 2014-10-22  1165     
clear_bit(AT_XDMAC_CHAN_IS_CYCLIC, &atchan->status);
e1f7c9ee Ludovic Desroches 2014-10-22  1166     spin_unlock_bh(&atchan->lock);

---
0-DAY kernel test infrastructure                Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation
_______________________________________________
kbuild mailing list
[email protected]
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to