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 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