On Mon, 3 Oct 2011 10:53:45 -0700 "Bounine, Alexandre" <alexandre.boun...@idt.com> wrote:
> > > + memset(bd_ptr, 0, bd_num * sizeof(struct tsi721_dma_desc)); > > > + > > > + dev_dbg(dev, "DMA descriptors @ %p (phys = %llx)\n", > > > + bd_ptr, (unsigned long long)bd_phys); > > > + > > > + /* Allocate space for descriptor status FIFO */ > > > + sts_size = (bd_num >= TSI721_DMA_MINSTSSZ) ? > > > + bd_num : TSI721_DMA_MINSTSSZ; > > > + sts_size = roundup_pow_of_two(sts_size); > > > + sts_ptr = dma_alloc_coherent(dev, > > > + sts_size * sizeof(struct > tsi721_dma_sts), > > > + &sts_phys, GFP_KERNEL); > > > + if (!sts_ptr) { > > > + /* Free space allocated for DMA descriptors */ > > > + dma_free_coherent(dev, > > > + bd_num * sizeof(struct > tsi721_dma_desc), > > > + bd_ptr, bd_phys); > > > + chan->bd_base = NULL; > > > + return -ENOMEM; > > > + } > > > + > > > + chan->sts_phys = sts_phys; > > > + chan->sts_base = sts_ptr; > > > + chan->sts_size = sts_size; > > > + > > > + memset(sts_ptr, 0, sts_size); > > > > You meant > > I really need it here. That status block tracks progress by keeping > non-zero addresses of processed descriptors. Confused. Are you saying that the use of "sts_size" there was intentional? > > > > --- a/drivers/rapidio/devices/tsi721.c~rapidio-tsi721-add-dma-engine- > > support-fix > > +++ a/drivers/rapidio/devices/tsi721.c > > @@ -1006,7 +1006,7 @@ static int tsi721_bdma_maint_init(struct > > priv->mdma.sts_base = sts_ptr; > > priv->mdma.sts_size = sts_size; > > > > - memset(sts_ptr, 0, sts_size); > > + memset(sts_ptr, 0, sts_size * sizeof(struct tsi721_dma_sts)); > > > > dev_dbg(&priv->pdev->dev, > > "desc status FIFO @ %p (phys = %llx) size=0x%x\n", > > > > However that's at least two instances where you wanted a > > dma_zalloc_coherent(). How's about we give ourselves one? > > Does this mean that I am on hook for it as a "most frequent user"? No, it can be used all over the place: drivers/net/irda/w83977af_ir.c, drivers/scsi/bnx2fc/bnx2fc_tgt.c, drivers/net/wireless/rt2x00/rt2x00pci.c, drivers/crypto/amcc/crypto4xx_core.c and many nmore. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev