--- usr/src/nv/nv.c.orig +++ usr/src/nv/nv.c @@ -15,6 +15,7 @@ #include "nv_compiler.h" #include "os-agp.h" #include "nv-vm.h" +#include #ifdef MODULE_ALIAS_CHARDEV_MAJOR MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER); @@ -499,10 +500,12 @@ * Set the module owner to ensure that the reference * count reflects accesses to the proc files. */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) proc_nvidia->owner = THIS_MODULE; proc_nvidia_cards->owner = THIS_MODULE; proc_nvidia_warnings->owner = THIS_MODULE; +#endif for (j = 0; j < num_nv_devices; j++) { nvl = &nv_linux_devices[j]; @@ -521,7 +524,9 @@ entry->data = nv; entry->read_proc = nv_kern_read_cardinfo; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif if (nvos_find_agp_capability(dev)) { /* @@ -534,7 +539,9 @@ goto failed; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif proc_nvidia_agp = entry; entry = create_proc_entry("status", flags, proc_nvidia_agp); @@ -545,7 +552,9 @@ entry->data = nv; entry->read_proc = nv_kern_read_status; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif entry = create_proc_entry("host-bridge", flags, proc_nvidia_agp); if (!entry) { @@ -555,8 +564,9 @@ entry->data = NULL; entry->read_proc = nv_kern_read_agpinfo; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; - +#endif entry = create_proc_entry("card", flags, proc_nvidia_agp); if (!entry) { NV_PCI_DEV_PUT(dev); @@ -565,7 +575,9 @@ entry->data = nv; entry->read_proc = nv_kern_read_agpinfo; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif } NV_PCI_DEV_PUT(dev); @@ -576,14 +588,18 @@ goto failed; entry->read_proc = nv_kern_read_version; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif entry = create_proc_entry("registry", flags, proc_nvidia); if (!entry) goto failed; entry->read_proc = nv_kern_read_registry; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif return; @@ -610,7 +626,9 @@ entry->data = (void *)message; entry->read_proc = nv_kern_read_warning; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) entry->owner = THIS_MODULE; +#endif #endif } --- usr/src/nv/os-agp.c.orig +++ usr/src/nv/os-agp.c @@ -284,7 +284,7 @@ RM_STATUS KernLoadAGPPages( { nv_pte_t *page_ptr = at->page_table[i]; - page_ptr->phys_addr = (ptr->memory[i] & PAGE_MASK); + page_ptr->phys_addr = (page_to_phys(ptr->pages[i]) & PAGE_MASK); page_ptr->virt_addr = (unsigned long) __va(page_ptr->phys_addr); page_ptr->dma_addr = page_ptr->phys_addr; } --- usr/src/nv/nv-i2c.c.orig +++ usr/src/nv/nv-i2c.c @@ -196,8 +196,6 @@ #if defined(NV_I2C_ADAPTER_HAS_DEC_USE) .dec_use = nv_i2c_adapter_dec_use, #endif - .client_register = nv_i2c_adapter_register_client, - .client_unregister = nv_i2c_adapter_unregister_client, .data = NULL, }; @@ -219,8 +219,6 @@ .owner = THIS_MODULE, .algo = &nv_i2c_algo, .algo_data = NULL, - .client_register = nv_i2c_adapter_register_client, - .client_unregister = nv_i2c_adapter_unregister_client, }; #endif // defined(KERNEL_2_4)