Williams, Dan J wrote: > In order to support dynamic resizing of the descriptor ring or polling > for a descriptor in the presence of a hung channel the reset handler > needs to make progress while in a non-preemptible context. The current > workqueue implementation precludes polling channel reset completion > under spin_lock(). > > This conversion also allows us to return to opportunistic cleanup in the > ioat2 case as the timer implementation guarantees at least one cleanup > after every descriptor is submitted. This means the worst case > completion latency becomes the timer frequency (for exceptional > circumstances), but with the benefit of avoiding busy waiting when the > lock is contended. > > Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> > --- [...] > --- a/drivers/dma/ioat/dma_v2.c > +++ b/drivers/dma/ioat/dma_v2.c > @@ -49,7 +49,7 @@ static void __ioat2_issue_pending(struct ioat2_dma_chan *ioat) > void * __iomem reg_base = ioat->base.reg_base; > > ioat->pending = 0; > - ioat->dmacount += ioat2_ring_pending(ioat); > + ioat->dmacount += ioat2_ring_pending(ioat);; double semicolon Signed-off-by: Maciej Sosnowski <maciej.sosnowski@xxxxxxxxx>-- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html