RE: [PATCH 0/24] make atomic_read() behave consistently across all architectures

From: Luck, Tony
Date: Thu Aug 16 2007 - 17:09:22 EST


>> 6674: while (atomic_read(&j->DSPWrite) > 0)
>> 6675- atomic_dec(&j->DSPWrite);
>
> If the maintainer of this code doesn't see a compelling reason to add
> cpu_relax() in this loop, then it should be patched.

Shouldn't it be just re-written without the loop:

if ((tmp = atomic_read(&j->DSPWrite)) > 0)
atomic_sub(&j->DSPWrite, tmp);

Has all the same bugs, but runs much faster :-)

-Tony
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/