On Thu, May 10 2007, Benny Halevy wrote:
> Jens Axboe wrote:
> <snip>
> > @@ -323,13 +324,17 @@ static int __dma_map_cont(struct scatterlist *sg, int 
> > start, int stopat,
> >  {
> >     unsigned long iommu_start = alloc_iommu(pages);
> >     unsigned long iommu_page = iommu_start; 
> > -   int i;
> > +   struct scatterlist *s;
> > +   int i, nelems;
> >  
> >     if (iommu_start == -1)
> >             return -1;
> > +
> > +   nelems = stopat - start;
> > +   while (start--)
> > +           sg = sg_next(sg);
> 
> Ouch.  This will suck if we merge many times in a long list.
> How about keeping and passing start as a struct scatterlist * rather
> than an index? (see attached example, (compiles, bu untested though)

It will suck indeed, I like your patch! I'll review and incorporate.
Your other points are good, noted.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to