I think there is an ob1 bug in ati_alloc_pcigart_table: it is reserving
one page too much beyond the region returned by __get_free_pages.
Similarily, ati_free_pcigart_table should unreserve one page less.
--- linux-2.4.9/drivers/char/drm/ati_pcigart.h 2001/08/18 15:13:16 1.1
+++ linux-2.4.9/drivers/char/drm/ati_pcigart.h 2001/08/18 15:13:43
@@ -57,7 +57,7 @@
page = virt_to_page( address );
- for ( i = 0 ; i <= ATI_PCIGART_TABLE_PAGES ; i++, page++ ) {
+ for ( i = 0 ; i < ATI_PCIGART_TABLE_PAGES ; i++, page++ ) {
atomic_inc( &page->count );
SetPageReserved( page );
}
@@ -76,7 +76,7 @@
page = virt_to_page( address );
- for ( i = 0 ; i <= ATI_PCIGART_TABLE_PAGES ; i++, page++ ) {
+ for ( i = 0 ; i < ATI_PCIGART_TABLE_PAGES ; i++, page++ ) {
atomic_dec( &page->count );
ClearPageReserved( page );
}
Andreas.
-- Andreas Schwab "And now for something SuSE Labs completely different." Andreas.Schwab@suse.de SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Aug 23 2001 - 21:00:28 EST