On Tue, Oct 15, 2019 at 01:24:50PM +0200, Alexander Gordeev wrote: > On Thu, Oct 10, 2019 at 02:30:34PM +0300, Dan Carpenter wrote: > > On Thu, Oct 10, 2019 at 10:51:45AM +0200, Alexander Gordeev wrote: > > > On Wed, Oct 09, 2019 at 09:53:23PM +0300, Dan Carpenter wrote: > > > > > > > + u32 *rd_flags = hw->dma_desc_table_rd.cpu_addr->flags; > > > > > > > + u32 *wr_flags = hw->dma_desc_table_wr.cpu_addr->flags; > > > > > > > + struct avalon_dma_desc *desc; > > > > > > > + struct virt_dma_desc *vdesc; > > > > > > > + bool rd_done; > > > > > > > + bool wr_done; > > > > > > > + > > > > > > > + spin_lock(lock); > > [*] [ snip ] > I struggle to realize how the spinlock I use (see [*] above) does not > protect the reader. Argh.... I'm really sorry. I completely didn't see the spinlock. :P I am embarrassed. Wow... regards, dan carpenter