diff -urN wt2-5l/drivers/char/drm-4.0/i810_dma.c wt2/drivers/char/drm-4.0/i810_dma.c --- wt2-5l/drivers/char/drm-4.0/i810_dma.c Sun Mar 3 17:17:46 2002 +++ wt2/drivers/char/drm-4.0/i810_dma.c Sun Mar 3 21:28:40 2002 @@ -34,6 +34,7 @@ #include "drmP.h" #include "i810_drv.h" #include /* For task queue support */ +#include /* in case we don't have a 2.3.99-pre6 kernel or later: */ #ifndef VM_DONTCOPY @@ -288,14 +289,13 @@ static void i810_free_page(drm_device_t *dev, unsigned long page) { - struct page * p = virt_to_page(page); - if(page == 0UL) - return; + if (page) { + struct page * p = virt_to_page(page); - put_page(p); - UnlockPage(p); - free_page(page); - return; + put_page(p); + UnlockPage(p); + free_page(page); + } } static int i810_dma_cleanup(drm_device_t *dev)