--- drivers/char/agp/backend.c.orig 2005-01-09 12:36:19.000000000 +1100 +++ drivers/char/agp/backend.c 2005-01-10 18:36:15.000000000 +1100 @@ -66,10 +66,17 @@ bridge = agp_generic_find_bridge(pdev); if (!bridge) + { + printk("agp_backend_acquire failed on find bridge\n"); return NULL; + } if (atomic_read(&bridge->agp_in_use)) + { + printk("agp_backend_acquire failed on atomic read\n"); return NULL; + } + printk("agp_backend_acquire: increase agp_in_use\n"); atomic_inc(&bridge->agp_in_use); return bridge; } @@ -87,8 +94,10 @@ void agp_backend_release(struct agp_bridge_data *bridge) { - if (bridge) + if (bridge) { + printk("agp_backend_acquire: decrease agp_in_use\n"); atomic_dec(&bridge->agp_in_use); + } } EXPORT_SYMBOL(agp_backend_release); --- drivers/char/agp/frontend.c.orig 2005-01-10 18:38:05.000000000 +1100 +++ drivers/char/agp/frontend.c 2005-01-10 18:36:52.000000000 +1100 @@ -794,6 +794,7 @@ if (atomic_read(&agp_bridge->agp_in_use)) return -EBUSY; + printk("agpioc acquire increase agp_in_use\n"); atomic_inc(&agp_bridge->agp_in_use); agp_fe.backend_acquired = TRUE;