From owner-freebsd-ports@FreeBSD.ORG Mon Sep 9 23:05:30 2013 Return-Path: Delivered-To: freebsd-ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0266EEA4; Mon, 9 Sep 2013 23:05:30 +0000 (UTC) (envelope-from ohartman@zedat.fu-berlin.de) Received: from outpost1.zedat.fu-berlin.de (outpost1.zedat.fu-berlin.de [130.133.4.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8617D2A3D; Mon, 9 Sep 2013 23:05:29 +0000 (UTC) Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost1.zedat.fu-berlin.de (Exim 4.80.1) with esmtp (envelope-from ) id <1VJAWN-003eRh-Qq>; Tue, 10 Sep 2013 01:05:27 +0200 Received: from e179065126.adsl.alicedsl.de ([85.179.65.126] helo=thor.walstatt.dyndns.org) by inpost2.zedat.fu-berlin.de (Exim 4.80.1) with esmtpsa (envelope-from ) id <1VJAWN-000fEd-KU>; Tue, 10 Sep 2013 01:05:27 +0200 Date: Tue, 10 Sep 2013 01:05:26 +0200 From: "O. Hartmann" To: Ian Lepore Subject: Re: CURRENT r255426: x11/nvidia-driver: nvidia_subr.c:835:46: error: too few arguments to function call, expected 10, have 9 (VM_PROT_READ | VM_PROT_WRITE), 0); Message-ID: <20130910010526.2a6aff37@thor.walstatt.dyndns.org> In-Reply-To: <1378766963.1111.579.camel@revolution.hippie.lan> References: <20130909223748.61dd8859@thor.walstatt.dyndns.org> <20130910000237.6b5604da@nonamehost.local> <20130909231713.34ebfbdd@thor.walstatt.dyndns.org> <20130910002405.4aa701d0@nonamehost.local> <20130910004240.70bc281f@thor.walstatt.dyndns.org> <1378766963.1111.579.camel@revolution.hippie.lan> Organization: FU Berlin X-Mailer: Claws Mail 3.9.2 (GTK+ 2.24.19; amd64-portbld-freebsd10.0) Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/Vmtyepju929/5CxjndkXwz4"; protocol="application/pgp-signature" X-Originating-IP: 85.179.65.126 Cc: Ivan Klymenko , FreeBSD CURRENT , FreeBSD Ports X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Sep 2013 23:05:30 -0000 --Sig_/Vmtyepju929/5CxjndkXwz4 Content-Type: multipart/mixed; boundary="MP_/SiMt+dXgloLdHvspPyGi3UV" --MP_/SiMt+dXgloLdHvspPyGi3UV Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Mon, 09 Sep 2013 16:49:23 -0600 Ian Lepore wrote: > On Tue, 2013-09-10 at 00:42 +0200, O. Hartmann wrote: > > On Tue, 10 Sep 2013 00:24:05 +0300 > > Ivan Klymenko wrote: > >=20 > > > =F7 Mon, 9 Sep 2013 23:17:13 +0200 > > > "O. Hartmann" =D0=C9=DB=C5=D4: > > >=20 > > > > On Tue, 10 Sep 2013 00:02:37 +0300 > > > > Ivan Klymenko wrote: > > > >=20 > > > > > =F7 Mon, 9 Sep 2013 22:37:48 +0200 > > > > > "O. Hartmann" =D0=C9=DB=C5=D4: > > > > > > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.2.1= 8/out/freebsd.amd64/release/bin/src/vboxdrv/r0drv/freebsd/alloc-r0drv-freeb= sd.c:83:76: > > > > > > error: too few arguments to function call, expected 10, > > > > > > have 9 cbAllocated, TRUE, VM_PROT_ALL, VM_PROT_ALL, 0); ^ > > > > > > @/vm/vm_map.h:368:1: note: 'vm_map_find' declared here int > > > > > > vm_map_find(vm_map_t, vm_object_t, vm_ooffset_t, > > > > > > vm_offset_t *, vm_size_t, > > > > >=20 > > > > > Try the following changes: > > > > > int rc =3D vm_map_find(kernel_map, pVmObject, 0, &Addr, > > > > > --- cbAllocated, TRUE, VM_PROT_ALL, > > > > > VM_PROT_ALL, 0); +++ cbAllocated, 0, > > > > > VMFS_OPTIMAL_SPACE, VM_PROT_ALL, VM_PROT_ALL, 0); > > > > >=20 > > > > > for Nvidia driver need to make similar changes... > > > > The man page of vm_map_find() says the last parameter is of int, > > > > named int cow. On the hurry, I didn't find any explanation of > > > > that parameter. Setting it to "0" (zero) also in the > > > > nvidia_subr.c makes the driver compile again. > > > >=20 > > > > But simply filling in a int zero is a bit strange without > > > > knowing what to do, isn't it? > > > >=20 > > > > Thanks anyway, > > > >=20 > > > > Oliver > > >=20 > > > This commit you to find an appropriate example ... > > > http://docs.freebsd.org/cgi/getmsg.cgi?fetch=3D291456+0+current/svn-s= rc-head > > > And in this case, the driver Nvidia really need to specify 0 in > > > place of the sixth argument ... > > > but I'm not sure at 100% :) > >=20 > > I have a patch attached for the x11/nvidia-driver Makefile. It > > doesn't work and I loose hairs due to not knowing why. > >=20 > > When issuing the following command sequence on the console: > >=20 > > cd /usr/ports/x11/nvidia-driver > > make clean extract > > sed -i -e '/(VM_PROT_READ | VM_PROT_WRITE), 0);$/s/0);$/0, 0);/g' \ > > work/NVIDIA-FreeBSD-x86_64-325.15/src/nvidia_subr.c > >=20 > >=20 > > and check then line 835 (the corrupt one) in file=20 > > work/NVIDIA-FreeBSD-x86_64-325.15/src/nvidia_subr.c, > >=20 > > I see this BEFORE: > >=20 > > status =3D vm_map_find(kernel_map, at->object, (i * PAGE_SIZE), > > &virtual_address, size, VMFS_ANY_SPACE, > > (VM_PROT_READ | VM_PROT_WRITE), > > =3D=3D=3D(835)>> (VM_PROT_READ | VM_PROT_WRITE), 0); > >=20 > >=20 > > and I see this AFTER the sed'ed replacement: > >=20 > > status =3D vm_map_find(kernel_map, at->object, (i * PAGE_SIZE), > > &virtual_address, size, VMFS_ANY_SPACE, > > (VM_PROT_READ | VM_PROT_WRITE), > > =3D=3D=3D(835)>> (VM_PROT_READ | VM_PROT_WRITE), 0, 0); > >=20 > > BUT: Using the patch (see attached, please apply to > > x11/nvidia-driver/Makefile) gives me an error in x11/nvidia-driver: > >=20 > > make clean patch > >=20 > > =3D=3D=3D> Cleaning for nvidia-driver-325.15 > > =3D=3D=3D> License NVIDIA accepted by the user > > =3D=3D=3D> Found saved configuration for nvidia-driver-325.08_1 > > =3D=3D=3D> nvidia-driver-325.15 depends on file: /usr/local/sbin/pkg - > > found =3D=3D=3D> Fetching all distfiles required by nvidia-driver-325.15 > > for building > > =3D=3D=3D> Extracting for nvidia-driver-325.15 > > =3D> SHA256 Checksum OK for NVIDIA-FreeBSD-x86_64-325.15.tar.gz. > > =3D=3D=3D> Patching for nvidia-driver-325.15 > > sed: 1: "/(VM_PROT_READ | VM_PRO ...": invalid command code 0 > > *** Error code 1 > >=20 > > The Shell/make should be able to substitute within a single-quotet > > command to sed, but the error message reports differently. > >=20 > > Do not be confused about the driver revision I use. I tried the > > official one (319.XX) as well and it is not working the very same > > way and the patch won't either. > >=20 > > Oliver >=20 > I don't know about the sed error, but I think the change you're trying > to make is wrong. The new '0' parameter to vm_map_find() isn't added > at the end, it goes after the size parameter. >=20 > -- Ian Yes, you're correct and my face is red like a tomatoe :-( I try this sed replacement expression: sed -i -e '/\&virtual_address\, size\, \ VMFS_ANY\_SPACE\,$/s//\&virtual_address\, size\, 0\, \ VMFS_ANY\_SPACE\,/g' work/NVIDIA-FreeBSD-x86_64-325.15/src/nvidia_subr.c It works from the command line, but it doesn't work from the (attached) Makefile-patch. --MP_/SiMt+dXgloLdHvspPyGi3UV Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=nvidia-driver_2nd.patch --- Makefile.orig 2013-09-10 00:30:53.000000000 +0200 +++ Makefile 2013-09-10 01:04:05.000000000 +0200 @@ -160,6 +160,12 @@ s/CAP_IOCTL/cap_rights_init(\&rights, &)/' \ ${WRKSRC}/src/nvidia_linux.c .endif +# Changes in vm_map_find() due to r255426 +.if ${OSVERSION} > 1000053 + ${REINPLACE_CMD} -e '/\&virtual_address\, size\, VMFS_ANY\_SPACE\,$/s/\ + /\&virtual_address\, size\, 0\, VMFS_ANY\_SPACE\,/g' \ + ${WRKSRC}/src/nvidia_subr.c +.endif # Fix stack buffer overflow in nvidia_sysctl_bus_type() .if ${NVVERSION} < 3192300 ${REINPLACE_CMD} -E '/bus_type\[4\]/d ; \ --MP_/SiMt+dXgloLdHvspPyGi3UV-- --Sig_/Vmtyepju929/5CxjndkXwz4 Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (FreeBSD) iQEcBAEBAgAGBQJSLlQ3AAoJEOgBcD7A/5N8r7kH/jQ+EKxUICcnwJ1huoQCl2R0 Rtie4n33ylRFMmoqNm1EEdsGbb30vMTdI/x6/puNJ58uTKpOUpLdJ9gfhpB4+75a S9Xv3K/Jva4SV1jzuVeCAi0+Vo64zqHiysatVm00LGEId9BlB06iJmbak1gMqd2I u2wksFQ8dmcwks4DK/PuYbWgaXCHXnXXDmkzF5SUTfy9gwBGxfyxOZ38ydbDsc6d ThqrfeFmqm7qSAOREnaWG9BjZuEkQ1k385SA1n5VXFifzrebdevaAUyZO/iBMhG6 +U7ppozqnreH32pDZXlsEHay2KK/M0TQ/wdQPM/rHxomtptUMWbJkZVY2+tQ8yk= =a/7R -----END PGP SIGNATURE----- --Sig_/Vmtyepju929/5CxjndkXwz4--