On Mon, 09 Sep 2013 16:49:23 -0600 Ian Lepore <ian_at_FreeBSD.org> wrote: > On Tue, 2013-09-10 at 00:42 +0200, O. Hartmann wrote: > > On Tue, 10 Sep 2013 00:24:05 +0300 > > Ivan Klymenko <fidaj_at_ukr.net> wrote: > > > > > В Mon, 9 Sep 2013 23:17:13 +0200 > > > "O. Hartmann" <ohartman_at_zedat.fu-berlin.de> пишет: > > > > > > > On Tue, 10 Sep 2013 00:02:37 +0300 > > > > Ivan Klymenko <fidaj_at_ukr.net> wrote: > > > > > > > > > В Mon, 9 Sep 2013 22:37:48 +0200 > > > > > "O. Hartmann" <ohartman_at_zedat.fu-berlin.de> пишет: > > > > > > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.2.18/out/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); ^ > > > > > > _at_/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, > > > > > > > > > > Try the following changes: > > > > > int rc = 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); > > > > > > > > > > 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. > > > > > > > > But simply filling in a int zero is a bit strange without > > > > knowing what to do, isn't it? > > > > > > > > Thanks anyway, > > > > > > > > Oliver > > > > > > This commit you to find an appropriate example ... > > > http://docs.freebsd.org/cgi/getmsg.cgi?fetch=291456+0+current/svn-src-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% :) > > > > 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 > > work/NVIDIA-FreeBSD-x86_64-325.15/src/nvidia_subr.c, > > > > I see this BEFORE: > > > > status = vm_map_find(kernel_map, at->object, (i * PAGE_SIZE), > > &virtual_address, size, VMFS_ANY_SPACE, > > (VM_PROT_READ | VM_PROT_WRITE), > > ===(835)>> (VM_PROT_READ | VM_PROT_WRITE), 0); > > > > > > and I see this AFTER the sed'ed replacement: > > > > status = vm_map_find(kernel_map, at->object, (i * PAGE_SIZE), > > &virtual_address, size, VMFS_ANY_SPACE, > > (VM_PROT_READ | VM_PROT_WRITE), > > ===(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 > > > > ===> Cleaning for nvidia-driver-325.15 > > ===> License NVIDIA accepted by the user > > ===> Found saved configuration for nvidia-driver-325.08_1 > > ===> nvidia-driver-325.15 depends on file: /usr/local/sbin/pkg - > > found ===> Fetching all distfiles required by nvidia-driver-325.15 > > for building > > ===> Extracting for nvidia-driver-325.15 > > => SHA256 Checksum OK for NVIDIA-FreeBSD-x86_64-325.15.tar.gz. > > ===> 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 > > 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. > > -- 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.
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC