From: Brice Goglin <Brice.Goglin@ens-lyon.fr>

It seems that memsetting the whole bridge structure to 0 (instead of juste
the agp_in_use field) fixes Benoit's problem too.  No idea which field was
responsible for this.  New patch attached.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/char/agp/backend.c |    4 ++++
 1 files changed, 4 insertions(+)

diff -puN drivers/char/agp/backend.c~agpgart-allow-multiple-backends-to-be-initialized-fix drivers/char/agp/backend.c
--- 25/drivers/char/agp/backend.c~agpgart-allow-multiple-backends-to-be-initialized-fix	2005-01-10 20:07:47.643464952 -0800
+++ 25-akpm/drivers/char/agp/backend.c	2005-01-10 20:08:50.689880440 -0800
@@ -235,6 +235,10 @@ struct agp_bridge_data *agp_alloc_bridge
 	if (!bridge)
 		return NULL;
 
+	memset(bridge, 0, sizeof(*bridge));
+	atomic_set(&bridge->agp_in_use, 0);
+	atomic_set(&bridge->current_memory_agp, 0);
+
 	if (list_empty(&agp_bridges))
 		agp_bridge = bridge;
 
_