Date: Tue, 10 Sep 2013 00:42:40 +0200 From: "O. Hartmann" <ohartman@zedat.fu-berlin.de> To: Ivan Klymenko <fidaj@ukr.net> Cc: FreeBSD CURRENT <freebsd-current@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org> 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: <20130910004240.70bc281f@thor.walstatt.dyndns.org> In-Reply-To: <20130910002405.4aa701d0@nonamehost.local> References: <20130909223748.61dd8859@thor.walstatt.dyndns.org> <20130910000237.6b5604da@nonamehost.local> <20130909231713.34ebfbdd@thor.walstatt.dyndns.org> <20130910002405.4aa701d0@nonamehost.local>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/=Yo2NVK0V6hf5X=_BhBi_K+ Content-Type: multipart/mixed; boundary="MP_/t9rnh6LEgzGFFLdd98QRq.=" --MP_/t9rnh6LEgzGFFLdd98QRq.= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Tue, 10 Sep 2013 00:24:05 +0300 Ivan Klymenko <fidaj@ukr.net> wrote: > =D0=92 Mon, 9 Sep 2013 23:17:13 +0200 > "O. Hartmann" <ohartman@zedat.fu-berlin.de> =D0=BF=D0=B8=D1=88=D0=B5=D1= =82: >=20 > > On Tue, 10 Sep 2013 00:02:37 +0300 > > Ivan Klymenko <fidaj@ukr.net> wrote: > >=20 > > > =D0=92 Mon, 9 Sep 2013 22:37:48 +0200 > > > "O. Hartmann" <ohartman@zedat.fu-berlin.de> =D0=BF=D0=B8=D1=88=D0=B5= =D1=82: > > > > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.2.18/ou= t/freebsd.amd64/release/bin/src/vboxdrv/r0drv/freebsd/alloc-r0drv-freebsd.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-src-h= ead > 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% :) I have a patch attached for the x11/nvidia-driver Makefile. It doesn't work and I loose hairs due to not knowing why. When issuing the following command sequence on the console: 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 and check then line 835 (the corrupt one) in file=20 work/NVIDIA-FreeBSD-x86_64-325.15/src/nvidia_subr.c, I see this BEFORE: 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); and I see this AFTER the sed'ed replacement: 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); BUT: Using the patch (see attached, please apply to x11/nvidia-driver/Makefile) gives me an error in x11/nvidia-driver: make clean patch =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 - fo= und =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 The Shell/make should be able to substitute within a single-quotet command to sed, but the error message reports differently. 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. Oliver --MP_/t9rnh6LEgzGFFLdd98QRq.= Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=nvidia-driver.patch --- Makefile.orig 2013-09-10 00:30:53.000000000 +0200 +++ Makefile 2013-09-10 00:40:08.000000000 +0200 @@ -160,6 +160,11 @@ s/CAP_IOCTL/cap_rights_init(\&rights, &)/' \ ${WRKSRC}/src/nvidia_linux.c .endif +# Changes in vm_map_find() due to r255426 +.if ${OSVERSION} >=3D 1000054 + ${REINPLACE_CMD} -e '/(VM_PROT_READ | VM_PROT_WRITE), 0);$/s/0);$/0, 0);/= 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_/t9rnh6LEgzGFFLdd98QRq.=-- --Sig_/=Yo2NVK0V6hf5X=_BhBi_K+ Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (FreeBSD) iQEcBAEBAgAGBQJSLk7lAAoJEOgBcD7A/5N8EDQIAJx9TjgQarW8JUYRGklqTQJ2 N5qAqOvMLQALSZMMYyT+EJAwCaavAgYXXIFrIcGEVnqwKgZujtECiLun5Sxx3ZVp 0Vec7gvhA/IBRQ3o5rvgN4ClSy8gX68+IBS5YaPDKRpi4n1c3/ifKG1sjEeIGrxT 0All458Srcq/25EUNaD2OUrBR58RDGS6ewNpUFM0cm59CCFoyHqUM9QTnC6Mgv0n ZTzrZikizjEStR8FppoqgKMTXfs5HDto0Rx8qd77IqxCII9RI41rb9nFA81MDo9o 2xlnNn10IMZpyYsMWHUlDqUgzym7xQZHSJk9fBE3jC4713DLJdTO+i9j7KLGbIA= =PCXK -----END PGP SIGNATURE----- --Sig_/=Yo2NVK0V6hf5X=_BhBi_K+--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130910004240.70bc281f>