http://sourceforge.net/projects/openpctv/files/sources/nvidia-319.60_kernel-3.12.patch/download
Your patch is wrong (get_num_physpages).
Here’s a better patch for 3.12rc4 + kernels
--- a/kernel/nv-drm.c 2013-10-09 16:54:43.436071230 +0800
+++ b/kernel/nv-drm.c 2013-10-09 16:52:34.908067899 +0800
@@ -201,12 +201,7 @@
memset(&nv_obj->base, 0, sizeof(nv_obj->base));
nv_obj->pages = pages;
- ret = drm_gem_private_object_init(nvl->drm, &nv_obj->base, size);
- if (ret)
- {
- status = RM_ERR_OPERATING_SYSTEM;
- goto done;
- }
+ drm_gem_private_object_init(nvl->drm, &nv_obj->base, size);
ret = drm_gem_handle_create(file_priv, &nv_obj->base, handle);
if (ret)
diff -uNr a/kernel/nv-linux.h b/kernel/nv-linux.h
--- a/kernel/nv-linux.h 2013-10-09 16:54:48.192071353 +0800
+++ b/kernel/nv-linux.h 2013-10-09 16:52:39.580068019 +0800
@@ -1037,7 +1037,8 @@
#endif
#if !defined(NV_VMWARE)
-#define NV_NUM_PHYSPAGES num_physpages
+//#define NV_NUM_PHYSPAGES num_physpages
+#define NV_NUM_PHYSPAGES get_num_physpages()
#define NV_GET_CURRENT_PROCESS() current->tgid
#define NV_IN_ATOMIC() in_atomic()
#define NV_LOCAL_BH_DISABLE() local_bh_disable()