On Thu, May 10 2007, Benny Halevy wrote:
> @@ -411,12 +406,13 @@ int gart_map_sg(struct device *dev, struct scatterlist *sg, int nents, int dir)
> boundary and the new one doesn't have an offset. */
> if (!iommu_merge || !nextneed || !need || s->offset ||
> (ps->offset + ps->length) % PAGE_SIZE) {
> - if (dma_map_cont(sg, start, i, sg+out, pages,
> - need) < 0)
> + if (dma_map_cont(start_sg, i - start, sg+out,
> + pages, need) < 0)
> goto error;
> out++;
> pages = 0;
> - start = i;
> + start = i;
> + start_sg = s;
> }
> }
>
> @@ -424,7 +420,7 @@ int gart_map_sg(struct device *dev, struct scatterlist *sg, int nents, int dir)
> pages += to_pages(s->offset, s->length);
> ps = s;
> }
> - if (dma_map_cont(sg, start, i, sg+out, pages, need) < 0)
> + if (dma_map_cont(start_sg, i - start, sg+out, pages, need) < 0)
> goto error;
> out++;
> flush_gart();
Your patch is (very) buggy, the whole premise of doing chained sg
entries makes sg + int illegal!
--
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/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]