On Wed, 09 Jan 2008 08:57:53 +0900 FUJITA Tomonori <[EMAIL PROTECTED]> wrote:
> Andrew, can you replace > > iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch > > with the updated patch: > > http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048997.html > > For your convenience I've attached the updated patch too. <generates the incremental> > --- a/lib/iommu-helper.c~a > +++ a/lib/iommu-helper.c > @@ -8,15 +8,20 @@ > static unsigned long find_next_zero_area(unsigned long *map, > unsigned long size, > unsigned long start, > - unsigned int nr) > + unsigned int nr, > + unsigned long align_mask) > { > unsigned long index, end, i; > again: > index = find_next_zero_bit(map, size, start); > + > + /* Align allocation */ > + index = (index + align_mask) & ~align_mask; The ALIGN() macro is the approved way of doing this. (I don't think ALIGN adds much value really, especially given that you've commented what's going on, but I guess it does make reviewing and reading a little easier). > end = index + nr; > - if (end > size) > + if (end >= size) > return -1; > - for (i = index + 1; i < end; i++) { > + for (i = index; i < end; i++) { > if (test_bit(i, map)) { > start = i+1; > goto again; > @@ -50,9 +55,8 @@ unsigned long iommu_area_alloc(unsigned > { > unsigned long index; > again: > - index = find_next_zero_area(map, size, start, nr); > + index = find_next_zero_area(map, size, start, nr, align_mask); > if (index != -1) { > - index = (index + align_mask) & ~align_mask; > if (is_span_boundary(index, nr, shift, boundary_size)) { > /* we could do more effectively */ > start = index + 1; > _ > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html