diff -uNr NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c NVIDIA-Linux-x86-1.0-5336-pkg1.fixed/usr/src/nv/nv.c
--- NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c 2004-01-15 04:29:11.000000000 +0100
+++ NVIDIA-Linux-x86-1.0-5336-pkg1.fixed/usr/src/nv/nv.c 2004-02-17 20:53:36.000000000 +0100
-@@ -1103,7 +1103,7 @@
- * addresses by the CPU. This nopage handler will fault on CPU
- * accesses to AGP memory and map the address to the correct page.
- */
--struct page *nv_kern_vma_nopage(struct vm_area_struct *vma, unsigned long address, int write_access)
-+struct page *nv_kern_vma_nopage(struct vm_area_struct *vma, unsigned long address, int *write_access)
- {
- #if defined(NVCPU_IA64) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 9))
- nv_alloc_t *at, *tmp;
-@@ -1183,6 +1183,7 @@
- nv_kern_vma_open,
- nv_kern_vma_release, /* "close" */
- nv_kern_vma_nopage,
-+ 0
+@@ -1496,6 +1496,7 @@
+ .open = nv_kern_vma_open,
+ .close = nv_kern_vma_release, /* "close" */
+ .nopage = nv_kern_vma_nopage,
++ .populate = 0
};
static nv_file_private_t *
-@@ -2558,7 +2559,7 @@
- * so use the first page, which is page-aligned. this way, our
- * allocated page table does not need to be page-aligned
- */
-- *pAddress = (void *) at->page_table[0].dma_addr;
-+ *pAddress = (void *)(NV_UINTPTR_T) at->page_table[0].dma_addr;
- at->flags = NV_ALLOC_TYPE_PCI;
- nvl_add_alloc(nvl, at);
- } else
-diff -uNr NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv-linux.h NVIDIA-Linux-x86-1.0-5336-pkg1.fixed/usr/src/nv/nv-linux.h
---- NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv-linux.h 2004-01-15 04:29:11.000000000 +0100
-+++ NVIDIA-Linux-x86-1.0-5336-pkg1.fixed/usr/src/nv/nv-linux.h 2004-02-17 20:57:55.438110888 +0100
-@@ -143,7 +143,7 @@
- }
- #define NV_MEM_TRACKING_RETRIEVE_SIZE(ptr, size) \
- { \
-- (char *) (ptr) -= sizeof(void *); \
-+ ptr -= sizeof(void *); \
- size = *(int *) (ptr); \
- }
- #else
-@@ -293,13 +293,13 @@
- #if defined(NVCPU_IA64)
- #define NV_VMALLOC(ptr, size) \
- { \
-- (void *) (ptr) = vmalloc_dma(size); \
-+ ptr = vmalloc_dma(size); \
- VM_ALLOC_RECORD(ptr, size, "vm_alloc"); \
- }
- #else
- #define NV_VMALLOC(ptr, size) \
- { \
-- (void *) (ptr) = vmalloc_32(size); \
-+ ptr = vmalloc_32(size); \
- VM_ALLOC_RECORD(ptr, size, "vm_alloc"); \
- }
- #endif
-@@ -312,13 +312,13 @@
-
- #define NV_IOREMAP(ptr, physaddr, size) \
- { \
-- (void *) (ptr) = ioremap(physaddr, size); \
-+ ptr = ioremap(physaddr, size); \
- VM_ALLOC_RECORD(ptr, size, "vm_ioremap"); \
- }
-
- #define NV_IOREMAP_NOCACHE(ptr, physaddr, size) \
- { \
-- (void *) (ptr) = ioremap_nocache(physaddr, size); \
-+ ptr = ioremap_nocache(physaddr, size); \
- VM_ALLOC_RECORD(ptr, size, "vm_ioremap_nocache"); \
- }
-
-@@ -333,13 +333,13 @@
- */
- #define NV_KMALLOC(ptr, size) \
- { \
-- (void *) (ptr) = kmalloc(size, GFP_KERNEL); \
-+ ptr = kmalloc(size, GFP_KERNEL); \
- KM_ALLOC_RECORD(ptr, size, "km_alloc"); \
- }
-
- #define NV_KMALLOC_ATOMIC(ptr, size) \
- { \
-- (void *) (ptr) = kmalloc(size, GFP_ATOMIC); \
-+ ptr = kmalloc(size, GFP_ATOMIC); \
- KM_ALLOC_RECORD(ptr, size, "km_alloc_atomic"); \
- }
-
-@@ -352,7 +352,7 @@
-
- #define NV_GET_FREE_PAGES(ptr, order) \
- { \
-- (void *) (ptr) = __get_free_pages(NV_GFP_HW, order); \
-+ ptr = __get_free_pages(NV_GFP_HW, order); \
- }
-
- #define NV_FREE_PAGES(ptr, order) \
-@@ -690,7 +690,7 @@
-
- /* for the card devices */
- #define NVL_FROM_FILEP(filep) \
-- ((nv_linux_state_t*) (NV_GET_NVFP(filep))->nvptr)
-+ ((NV_GET_NVFP(filep))->nvptr)
-
- #define NV_GET_NVL_FROM_NV_STATE(nv) \
- ((nv_linux_state_t *) nv->os_state)