When I submitted the initial patch to add support for the M1541 chipset to agpgart, I mentioned that I couldn't figure out how to flush the TLB cache. The function ali_tlbflush() in the patch I submitted was wrong but harmless nevertheless. As a matter of fact, replacing it by a blank function doesn't change anything. That function hasn't been changed since then and I believe that lack of proper TLB flush might be the reason for the instability of the AGP on M1541 based motherboard. Has anyone tried to have a look at it?
This is apparently fixed now by Jeff Hartmann and Ian Hastie's work, patch is in the -ac series of Linux kernels after 2.4.0-ac3.