Re: AGP bogosities

OGAWA Hirofumi
2005-03-11T22:22:53Z

Linus Torvalds <torvalds@osdl.org> writes:

> Hmm.. We seem to not have any tests for the counts becoming negative, and
> this would seem to be an easy mistake to make considering that both I and
> Dave did it.

I stole this from -mm.
--
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

From: Ingo Molnar <mingo@elte.hu>

The patch below will detect atomic counter underflows. This has been
test-driven in the -RT patchset for some time. qdisc_destroy() triggered
it sometimes (in a seemingly nonfatal way, during device shutdown) - with
DaveM suggesting that it is most likely a bug in the networking code. So
it would be nice to have this in -mm for some time to validate all atomic
counters on a broader base.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

25-akpm/include/asm-i386/atomic.h | 4 ++++
1 files changed, 4 insertions(+)

diff -puN include/asm-i386/atomic.h~detect-atomic-counter-underflows include/asm-i386/atomic.h
--- 25/include/asm-i386/atomic.h~detect-atomic-counter-underflows Wed Nov 3 15:27:37 2004
+++ 25-akpm/include/asm-i386/atomic.h Wed Nov 3 15:27:37 2004
@@ -132,6 +132,10 @@ static __inline__ int atomic_dec_and_tes
{
unsigned char c;

+ if (!atomic_read(v)) {
+ printk("BUG: atomic counter underflow at:\n");
+ dump_stack();
+ }
__asm__ __volatile__(
LOCK "decl %0; sete %1"
:"=m" (v->counter), "=qm" (c)
_