Re: 2.5.74-mm1

Andrew Morton
2003-07-04T08:12:50Z

Zwane Mwaikambo <zwane@arm.linux.org.uk> wrote:
>

Changing this:

> static inline void bitmap_or(volatile unsigned long *dst, const volatile unsigned long *bitmap1,
> const volatile unsigned long *bitmap2, int bits)
> {
> int k;
>
> for (k = 0; k < BITS_TO_LONGS(bits); ++k)
> dst[k] = bitmap1[k] | bitmap2[k];
> }

to this:

static inline void bitmap_or(unsigned long *dst, unsigned long *bitmap1,
unsigned long *bitmap2, int bits)
{
int k;
int nr = BITS_TO_LONGS(bits);

for (k = 0; k < nr; k++)
dst[k] = bitmap1[k] | bitmap2[k];
}

fixes it up, and looks nicer anyway. Removing the volatiles (what were
they doing there?) did not fix it. The `nr' thing fixed it.

I shall make that change.