From: Brice Goglin 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 --- 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; _