aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanfe <danfe@FreeBSD.org>2005-02-24 13:28:21 +0800
committerdanfe <danfe@FreeBSD.org>2005-02-24 13:28:21 +0800
commit89790cd276b9c062da24281602120c77e6c4ddbc (patch)
tree48e0e09c0cf1d2b033bfe23425967440f79c8e28
parentaa701479b1a9235e28fd1a74e9f37f6c12344a97 (diff)
downloadfreebsd-ports-gnome-89790cd276b9c062da24281602120c77e6c4ddbc.tar.gz
freebsd-ports-gnome-89790cd276b9c062da24281602120c77e6c4ddbc.tar.zst
freebsd-ports-gnome-89790cd276b9c062da24281602120c77e6c4ddbc.zip
It turns out there's a call to vm_page_wakeup() that does not hold the
object lock across the call. It shows up with INVARIANTS turned on. PR: ports/77750 Submitted by: Frank Mayhar <frank(at)exit.com>
-rw-r--r--x11/nvidia-driver/Makefile4
-rw-r--r--x11/nvidia-driver/files/patch-src::nvidia_subr.c18
2 files changed, 20 insertions, 2 deletions
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
index f3f208ff8180..b0c5ae93d9e8 100644
--- a/x11/nvidia-driver/Makefile
+++ b/x11/nvidia-driver/Makefile
@@ -7,7 +7,7 @@
PORTNAME= nvidia-driver
PORTVERSION= 1.0.${NVVERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11
MASTER_SITES= http://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
ftp://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
@@ -66,7 +66,7 @@ pre-everything::
@${ECHO_MSG} "Define WITH_VM86_INT10CALL to use VM86 interface for INT10 calls (video BIOS)"
.endif
.if !defined(WITH_ACPI)
- @${ECHO_MSG} "Define WITH_ACPI to enable support for ACPI Power Management (5.X only!)"
+ @${ECHO_MSG} "Define WITH_ACPI to enable support for ACPI Power Management (5.x/6.x only!)"
.endif
.if !defined(WITHOUT_LINUX)
@${ECHO_MSG} "Define WITHOUT_LINUX to build without support for Linux compatibility"
diff --git a/x11/nvidia-driver/files/patch-src::nvidia_subr.c b/x11/nvidia-driver/files/patch-src::nvidia_subr.c
new file mode 100644
index 000000000000..7432e9861e6b
--- /dev/null
+++ b/x11/nvidia-driver/files/patch-src::nvidia_subr.c
@@ -0,0 +1,18 @@
+--- src/nvidia_subr.c.orig Sat Feb 19 13:19:54 2005
++++ src/nvidia_subr.c Sat Feb 19 13:22:47 2005
+@@ -1115,10 +1115,15 @@
+
+ #if __FreeBSD_version < 500000
+ vm_page_wire(m);
++#else
++ VM_OBJECT_LOCK(m->object);
+ #endif
+ vm_page_lock_queues();
+ vm_page_wakeup(m);
+ vm_page_unlock_queues();
++#if __FreeBSD_version >= 500000
++ VM_OBJECT_UNLOCK(m->object);
++#endif
+ }
+
+ at->object = object;