Subject: Re: 2.6.24-rc6-mm1

From: Andrew Morton <[email-masked]>
Date: Tue, 8 Jan 2008 17:07:21 -0800

On Wed, 09 Jan 2008 09:54:45 +0900
FUJITA Tomonori <[email-masked]> wrote:

> > > --- 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).
> 
> Would be better to use __ALIGN_MASK? I can find only one user who
> directly use __ALIGN_MASK. The POWER IOMMU calculates align_mask by
> itself so it's easier to pass align_mask as an argument.

ALIGN() should be OK - its aditional type coercion isn't useful in this
case but ALIGN() is the official interface.

I don't see any reason why vermilion.c had to reach for __ALIGN_MASK.  I'll
switch it to ALIGN().