Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Sep 2004 23:52:25 +0200
From:      "Georg-W. Koltermann" <gwk@rahn-koltermann.de>
To:        freebsd-current@freebsd.org
Subject:   [5.3-BETA3] VMWare2 problems, with PATCH
Message-ID:  <1094939545.2033.6.camel@localhost.muc.eu.mscsoftware.com>

next in thread | raw e-mail | index | archive | help
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);	




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1094939545.2033.6.camel>