View | Details | Raw Unified | Return to bug 176980
Collapse All | Expand All

(-)x11/nvidia-driver/Makefile (+4 lines)
Lines 86-91 Link Here
86
86
87
PLIST_SUB+=	LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
87
PLIST_SUB+=	LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
88
		MODULESDIR=${MODULESDIR}
88
		MODULESDIR=${MODULESDIR}
89
. if ${OSVERSION} > 1000028
90
EXTRA_PATCHES+=	${FILESDIR}/r248084-patch-src-nv-freebsd.h
91
EXTRA_PATCHES+=	${FILESDIR}/r248084-patch-src-nvidia_subr.c
92
. endif
89
93
90
.if ${PORT_OPTIONS:MLINUX}
94
.if ${PORT_OPTIONS:MLINUX}
91
CONFLICTS=	linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
95
CONFLICTS=	linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
(-)x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h (+10 lines)
Line 0 Link Here
1
--- src/nv-freebsd.h.orig	2013-01-14 14:38:44.000000000 -0800
2
+++ src/nv-freebsd.h	2013-03-09 06:36:23.000000000 -0800
3
@@ -77,6 +77,7 @@
4
 #include <vm/vm_object.h>
5
 #include <vm/pmap.h>
6
 #include <vm/vm_map.h>
7
+#include <sys/rwlock.h>
8
 #include <vm/vm_pager.h>
9
 #include <vm/uma.h>
10
 
(-)x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c (+56 lines)
Line 0 Link Here
1
--- src/nvidia_subr.c.orig	2013-01-14 14:38:44.000000000 -0800
2
+++ src/nvidia_subr.c	2013-03-09 06:47:05.000000000 -0800
3
@@ -83,7 +83,7 @@
4
             if (!sc->BAR_objects[i])
5
                 goto failed;
6
 
7
-            VM_OBJECT_LOCK(sc->BAR_objects[i]);
8
+            VM_OBJECT_WLOCK(sc->BAR_objects[i]);
9
             switch (i) {
10
                 case NV_GPU_BAR_INDEX_FB:
11
                     vm_object_set_memattr(sc->BAR_objects[i],
12
@@ -95,7 +95,7 @@
13
                             VM_MEMATTR_UNCACHEABLE);
14
                     break;
15
             }
16
-            VM_OBJECT_UNLOCK(sc->BAR_objects[i]);
17
+            VM_OBJECT_WUNLOCK(sc->BAR_objects[i]);
18
         }
19
     }
20
 
21
@@ -541,9 +541,9 @@
22
                 goto failed;
23
             }
24
 
25
-            VM_OBJECT_LOCK(sc->UD_object);
26
+            VM_OBJECT_WLOCK(sc->UD_object);
27
             vm_object_set_memattr(sc->UD_object, VM_MEMATTR_UNCACHEABLE);
28
-            VM_OBJECT_UNLOCK(sc->UD_object);
29
+            VM_OBJECT_WUNLOCK(sc->UD_object);
30
         }
31
 
32
         nv->flags |= NV_FLAG_OPEN;
33
@@ -965,9 +965,9 @@
34
         goto failed;
35
     }
36
 
37
-    VM_OBJECT_LOCK(at->object);
38
+    VM_OBJECT_WLOCK(at->object);
39
     vm_object_set_memattr(at->object, attr);
40
-    VM_OBJECT_UNLOCK(at->object);
41
+    VM_OBJECT_WUNLOCK(at->object);
42
 
43
     *private = at;
44
     SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
45
@@ -1108,9 +1108,9 @@
46
         goto failed;
47
     }
48
 
49
-    VM_OBJECT_LOCK(at->object);
50
+    VM_OBJECT_WLOCK(at->object);
51
     vm_object_set_memattr(at->object, attr);
52
-    VM_OBJECT_UNLOCK(at->object);
53
+    VM_OBJECT_WUNLOCK(at->object);
54
 
55
     *private = at;
56
     SLIST_INSERT_HEAD(&sc->alloc_list, at, list);

Return to bug 176980