[5.3-BETA3] VMWare2 problems, with PATCH
Georg-W. Koltermann
gwk at rahn-koltermann.de
Sat Sep 11 14:52:31 PDT 2004
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