VMware2 commit reminder (was: [5.3-BETA3] VMWare2 problems, with PATCH)

Georg-W. Koltermann gwk at rahn-koltermann.de
Wed Oct 6 13:41:05 PDT 2004


Hi,

it's only a few days away from 5.3-R so I thought I might remind you to
commit the patches to get VMware2 to work again.  See enclosed email
detailing the technical points.

I have those fixes in use on my system day to day with no negative
by-effect.

--
Regards,
Georg.

-----Weitergeleitete Nachricht-----
From: Georg-W. Koltermann <gwk at rahn-koltermann.de>
To: freebsd-current at freebsd.org
Subject: [5.3-BETA3] VMWare2 problems, with PATCH
Date: Sat, 11 Sep 2004 23:52:25 +0200

Hi,

trying to get VMWare2 to run on 5.3-BETA3, I noticed two problems:

        a) It doesn't compile.  You have to apply the patch from
        ports/68202
        
        b) Then it fails when trying to load the kernel module due to an
        undefined external kmem_alloc_pageable().  I have replaced the
        calls with kmem_alloc_nofault() as suggested in a different
        posting about VMWare3.

Could you please commit the patches from ports/68202 and the fix for b)
above, which I'm enclosing.

--
Thanks,
Georg.


-----------------------snip-----------------------------
--- vmmon-only/freebsd/hostif.c~	Fri Sep 10 11:50:20 2004
+++ vmmon-only/freebsd/hostif.c	Fri Sep 10 19:19:27 2004
@@ -1110,7 +1110,7 @@
   paddr = vtophys(addr);
 #if __FreeBSD_version >= 500038
   GIANT_REQUIRED;
-  ka->kaddr = kmem_alloc_pageable(kernel_map, PAGE_SIZE);
+  ka->kaddr = kmem_alloc_nofault(kernel_map, PAGE_SIZE);
   ka->map = PHYS_TO_VM_PAGE(paddr);
   vm_page_lock_queues();
   vm_page_wire(ka->map);
@@ -1118,19 +1118,19 @@
   pmap_qenter(ka->kaddr, &ka->map, 1);
 #elif __FreeBSD_version >= 500021
   GIANT_REQUIRED;
-  ka->kaddr = kmem_alloc_pageable(kernel_map, PAGE_SIZE);
+  ka->kaddr = kmem_alloc_nofault(kernel_map, PAGE_SIZE);
   ka->map = PHYS_TO_VM_PAGE(paddr);
   vm_page_wire(ka->map);
   pmap_kenter(ka->kaddr, paddr);
 #elif __FreeBSD_version >= 500013
   mtx_lock(&vm_mtx);
-  ka->kaddr = kmem_alloc_pageable(kernel_map, PAGE_SIZE);
+  ka->kaddr = kmem_alloc_nofault(kernel_map, PAGE_SIZE);
   ka->map = PHYS_TO_VM_PAGE(paddr);
   vm_page_wire(ka->map);
   pmap_kenter(ka->kaddr, paddr);
   mtx_unlock(&vm_mtx);
 #else
-  ka->kaddr = kmem_alloc_pageable(kernel_map, PAGE_SIZE);
+  ka->kaddr = kmem_alloc_nofault(kernel_map, PAGE_SIZE);
   ka->map = PHYS_TO_VM_PAGE(paddr);
   vm_page_wire(ka->map); 
   pmap_kenter(ka->kaddr, paddr);	
--- ../vmmon-only/freebsd/hostif.c~	Fri Sep 10 11:50:20 2004
+++ ../vmmon-only/freebsd/hostif.c	Fri Sep 10 19:19:27 2004
@@ -1066,7 +1066,7 @@
         return NULL;
   }
   paddr = vtophys(addr);
-  ka->kaddr = kmem_alloc_pageable(kernel_map, PAGE_SIZE);
+  ka->kaddr = kmem_alloc_nofault(kernel_map, PAGE_SIZE);
   ka->map = PHYS_TO_VM_PAGE(paddr);
   vm_page_wire(ka->map); 
   pmap_kenter(ka->kaddr, paddr);	




More information about the freebsd-current mailing list