From david@catwhisker.org  Fri Mar 15 03:43:17 2013
Return-Path: <david@catwhisker.org>
Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115])
	by hub.freebsd.org (Postfix) with ESMTP id 6331FFD4;
	Fri, 15 Mar 2013 03:43:17 +0000 (UTC)
	(envelope-from david@catwhisker.org)
Received: from albert.catwhisker.org (m209-73.dsl.rawbw.com [198.144.209.73])
	by mx1.freebsd.org (Postfix) with ESMTP id 2BB06DAC;
	Fri, 15 Mar 2013 03:43:16 +0000 (UTC)
Received: from albert.catwhisker.org (localhost [127.0.0.1])
	by albert.catwhisker.org (8.14.6/8.14.6) with ESMTP id r2F3h9dN063044;
	Thu, 14 Mar 2013 20:43:09 -0700 (PDT)
	(envelope-from david@albert.catwhisker.org)
Received: (from david@localhost)
	by albert.catwhisker.org (8.14.6/8.14.6/Submit) id r2F3h9tN063043;
	Thu, 14 Mar 2013 20:43:09 -0700 (PDT)
	(envelope-from david)
Message-Id: <201303150343.r2F3h9tN063043@albert.catwhisker.org>
Date: Thu, 14 Mar 2013 20:43:09 -0700 (PDT)
From: David Wolfskill <david@catwhisker.org>
Reply-To: David Wolfskill <david@catwhisker.org>
To: FreeBSD-gnats-submit@freebsd.org
Subject: x11/nvidia-driver build fails on head @r248084
X-Send-Pr-Version: 3.114
X-GNATS-Notify:

>Number:         176980
>Category:       ports
>Synopsis:       x11/nvidia-driver build fails on head @r248084
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    sbruno
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 15 03:50:00 UTC 2013
>Closed-Date:    Mon Apr 08 14:51:51 UTC 2013
>Last-Modified:  Mon Apr 08 14:51:51 UTC 2013
>Originator:     David Wolfskill
>Release:        FreeBSD 10.0-CURRENT i386
>Organization:
Wolfskill & Dowling Residence
>Environment:
System: FreeBSD g1-235.catwhisker.org 10.0-CURRENT FreeBSD 10.0-CURRENT #832  r248033M/248035: Fri Mar  8 07:36:04 PST 2013     root@localhost:/usr/obj/usr/src/sys/CANARY  i386

>Description:
	r248084 made some changes in src/sys/vm/vm_pager that break
	the build of ports/x11/nvidia-driver (as of r312359).
>How-To-Repeat:
	Update ports to at least r312359 and src to at least r248084;
	while running head (10.0-CURRENT) built from those sources,
	attempt to build ports/x11/nvidia-driver (e.g., "portmaster
	x11/nvidia-driver").

	I originally wrote this as seen in
	<http://docs.FreeBSD.org/cgi/mid.cgi?20130309153454.GS13861>.
>Fix:
	The below patch allows the port to build under both head and
	stable/9.  It is, however, possible that I've failed to get the
	OSVERSION quite right.

Index: x11/nvidia-driver/Makefile
--- x11/nvidia-driver/Makefile	2013-03-09 07:11:03.000000000 -0800
+++ x11/nvidia-driver/Makefile	2013-03-09 06:48:18.000000000 -0800
@@ -86,6 +86,10 @@
 
 PLIST_SUB+=	LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
 		MODULESDIR=${MODULESDIR}
+. if ${OSVERSION} > 1000028
+EXTRA_PATCHES+=	${FILESDIR}/r248084-patch-src-nv-freebsd.h
+EXTRA_PATCHES+=	${FILESDIR}/r248084-patch-src-nvidia_subr.c
+. endif
 
 .if ${PORT_OPTIONS:MLINUX}
 CONFLICTS=	linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
Index: x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h
--- x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h	1969-12-31 16:00:00.000000000 -0800
+++ x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h	2013-03-09 06:39:54.000000000 -0800
@@ -0,0 +1,10 @@
+--- src/nv-freebsd.h.orig	2013-01-14 14:38:44.000000000 -0800
++++ src/nv-freebsd.h	2013-03-09 06:36:23.000000000 -0800
+@@ -77,6 +77,7 @@
+ #include <vm/vm_object.h>
+ #include <vm/pmap.h>
+ #include <vm/vm_map.h>
++#include <sys/rwlock.h>
+ #include <vm/vm_pager.h>
+ #include <vm/uma.h>
+ 
Index: x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c
--- x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c	1969-12-31 16:00:00.000000000 -0800
+++ x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c	2013-03-09 06:48:53.000000000 -0800
@@ -0,0 +1,56 @@
+--- src/nvidia_subr.c.orig	2013-01-14 14:38:44.000000000 -0800
++++ src/nvidia_subr.c	2013-03-09 06:47:05.000000000 -0800
+@@ -83,7 +83,7 @@
+             if (!sc->BAR_objects[i])
+                 goto failed;
+ 
+-            VM_OBJECT_LOCK(sc->BAR_objects[i]);
++            VM_OBJECT_WLOCK(sc->BAR_objects[i]);
+             switch (i) {
+                 case NV_GPU_BAR_INDEX_FB:
+                     vm_object_set_memattr(sc->BAR_objects[i],
+@@ -95,7 +95,7 @@
+                             VM_MEMATTR_UNCACHEABLE);
+                     break;
+             }
+-            VM_OBJECT_UNLOCK(sc->BAR_objects[i]);
++            VM_OBJECT_WUNLOCK(sc->BAR_objects[i]);
+         }
+     }
+ 
+@@ -541,9 +541,9 @@
+                 goto failed;
+             }
+ 
+-            VM_OBJECT_LOCK(sc->UD_object);
++            VM_OBJECT_WLOCK(sc->UD_object);
+             vm_object_set_memattr(sc->UD_object, VM_MEMATTR_UNCACHEABLE);
+-            VM_OBJECT_UNLOCK(sc->UD_object);
++            VM_OBJECT_WUNLOCK(sc->UD_object);
+         }
+ 
+         nv->flags |= NV_FLAG_OPEN;
+@@ -965,9 +965,9 @@
+         goto failed;
+     }
+ 
+-    VM_OBJECT_LOCK(at->object);
++    VM_OBJECT_WLOCK(at->object);
+     vm_object_set_memattr(at->object, attr);
+-    VM_OBJECT_UNLOCK(at->object);
++    VM_OBJECT_WUNLOCK(at->object);
+ 
+     *private = at;
+     SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
+@@ -1108,9 +1108,9 @@
+         goto failed;
+     }
+ 
+-    VM_OBJECT_LOCK(at->object);
++    VM_OBJECT_WLOCK(at->object);
+     vm_object_set_memattr(at->object, attr);
+-    VM_OBJECT_UNLOCK(at->object);
++    VM_OBJECT_WUNLOCK(at->object);
+ 
+     *private = at;
+     SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->danfe 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Fri Mar 15 03:50:08 UTC 2013 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=176980 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/176980: commit references a PR
Date: Sat, 16 Mar 2013 07:30:06 +0000 (UTC)

 Author: sbruno (src committer)
 Date: Sat Mar 16 07:29:53 2013
 New Revision: 314338
 URL: http://svnweb.freebsd.org/changeset/ports/314338
 
 Log:
   Resolve current build breakage on head for the nvidia driver via this nice
   handy patch from dhw@ :-)
   
   Shoveled in via src commit bit, after some discussions in #bsdports
   
   PR:		ports/176980
   Submitted by:	dhw@
   Reviewed by:	miwi@
   Approved by:	nobody in particular
   Obtained from:	dogfood
   MFC after:	2 weeks
 
 Added:
   head/x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h   (contents, props changed)
   head/x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c   (contents, props changed)
 Modified:
   head/x11/nvidia-driver/Makefile   (contents, props changed)
 
 Modified: head/x11/nvidia-driver/Makefile
 ==============================================================================
 --- head/x11/nvidia-driver/Makefile	Sat Mar 16 07:29:22 2013	(r314337)
 +++ head/x11/nvidia-driver/Makefile	Sat Mar 16 07:29:53 2013	(r314338)
 @@ -86,6 +86,10 @@ WBINVD_DESC=		Flush CPU caches directly 
  
  PLIST_SUB+=	LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
  		MODULESDIR=${MODULESDIR}
 +. if ${OSVERSION} > 1000028
 +EXTRA_PATCHES+=	${FILESDIR}/r248084-patch-src-nv-freebsd.h
 +EXTRA_PATCHES+=	${FILESDIR}/r248084-patch-src-nvidia_subr.c
 +. endif
  
  .if ${PORT_OPTIONS:MLINUX}
  CONFLICTS=	linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
 
 Added: head/x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h	Sat Mar 16 07:29:53 2013	(r314338)
 @@ -0,0 +1,10 @@
 +--- src/nv-freebsd.h.orig	2013-01-14 14:38:44.000000000 -0800
 ++++ src/nv-freebsd.h	2013-03-09 06:36:23.000000000 -0800
 +@@ -77,6 +77,7 @@
 + #include <vm/vm_object.h>
 + #include <vm/pmap.h>
 + #include <vm/vm_map.h>
 ++#include <sys/rwlock.h>
 + #include <vm/vm_pager.h>
 + #include <vm/uma.h>
 + 
 
 Added: head/x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c	Sat Mar 16 07:29:53 2013	(r314338)
 @@ -0,0 +1,56 @@
 +--- src/nvidia_subr.c.orig	2013-01-14 14:38:44.000000000 -0800
 ++++ src/nvidia_subr.c	2013-03-09 06:47:05.000000000 -0800
 +@@ -83,7 +83,7 @@
 +             if (!sc->BAR_objects[i])
 +                 goto failed;
 + 
 +-            VM_OBJECT_LOCK(sc->BAR_objects[i]);
 ++            VM_OBJECT_WLOCK(sc->BAR_objects[i]);
 +             switch (i) {
 +                 case NV_GPU_BAR_INDEX_FB:
 +                     vm_object_set_memattr(sc->BAR_objects[i],
 +@@ -95,7 +95,7 @@
 +                             VM_MEMATTR_UNCACHEABLE);
 +                     break;
 +             }
 +-            VM_OBJECT_UNLOCK(sc->BAR_objects[i]);
 ++            VM_OBJECT_WUNLOCK(sc->BAR_objects[i]);
 +         }
 +     }
 + 
 +@@ -541,9 +541,9 @@
 +                 goto failed;
 +             }
 + 
 +-            VM_OBJECT_LOCK(sc->UD_object);
 ++            VM_OBJECT_WLOCK(sc->UD_object);
 +             vm_object_set_memattr(sc->UD_object, VM_MEMATTR_UNCACHEABLE);
 +-            VM_OBJECT_UNLOCK(sc->UD_object);
 ++            VM_OBJECT_WUNLOCK(sc->UD_object);
 +         }
 + 
 +         nv->flags |= NV_FLAG_OPEN;
 +@@ -965,9 +965,9 @@
 +         goto failed;
 +     }
 + 
 +-    VM_OBJECT_LOCK(at->object);
 ++    VM_OBJECT_WLOCK(at->object);
 +     vm_object_set_memattr(at->object, attr);
 +-    VM_OBJECT_UNLOCK(at->object);
 ++    VM_OBJECT_WUNLOCK(at->object);
 + 
 +     *private = at;
 +     SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
 +@@ -1108,9 +1108,9 @@
 +         goto failed;
 +     }
 + 
 +-    VM_OBJECT_LOCK(at->object);
 ++    VM_OBJECT_WLOCK(at->object);
 +     vm_object_set_memattr(at->object, attr);
 +-    VM_OBJECT_UNLOCK(at->object);
 ++    VM_OBJECT_WUNLOCK(at->object);
 + 
 +     *private = at;
 +     SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: sbruno 
State-Changed-When: Mon Apr 8 14:51:08 UTC 2013 
State-Changed-Why:  
Patched at svn r314338 


Responsible-Changed-From-To: danfe->sbruno 
Responsible-Changed-By: sbruno 
Responsible-Changed-When: Mon Apr 8 14:51:08 UTC 2013 
Responsible-Changed-Why:  
patch commited at svn r314338 

http://www.freebsd.org/cgi/query-pr.cgi?pr=176980 
>Unformatted:
