diff -u linux/drivers/video/i810fb.c.orig linux/drivers/video/i810fb.c --- linux/drivers/video/i810fb.c.orig Sat Mar 30 01:55:07 2002 +++ linux/drivers/video/i810fb.c Sat Mar 30 01:57:37 2002 @@ -2803,13 +2803,14 @@ * i810_free_page - frees a page * @ptr: pointer to page */ -static void i810_free_page(void * ptr) +static void i810_free_page(void * page) { - if (ptr == NULL) return; - atomic_dec(&virt_to_page(ptr)->count); - clear_bit(PG_locked, &virt_to_page(ptr)->flags); - wake_up(&virt_to_page(ptr)->wait); - free_page((unsigned long) ptr); + if(page) { + struct page *p = virt_to_page(page); + put_page(p); + UnlockPage(p); + free_page(page); + } } /**