View | Details | Raw Unified | Return to bug 252953
Collapse All | Expand All

(-)emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c (-5 / +10 lines)
Lines 418-432 Link Here
418
 
418
 
419
     if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
419
     if ((fProt & RTMEM_PROT_NONE) == RTMEM_PROT_NONE)
420
         ProtectionFlags = VM_PROT_NONE;
420
         ProtectionFlags = VM_PROT_NONE;
421
@@ -826,6 +885,7 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
421
@@ -825,7 +884,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINT
422
     if ((fProt & RTMEM_PROT_EXEC) == RTMEM_PROT_EXEC)
422
         ProtectionFlags |= VM_PROT_EXECUTE;
423
         ProtectionFlags |= VM_PROT_EXECUTE;
423
 
424
 
425
+#if __FreeBSD_version >= 1300135
426
+    int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, 0, VM_MAP_PROTECT_SET_PROT);
427
+#else
424
     int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, FALSE);
428
     int krc = vm_map_protect(pVmMap, AddrStart, AddrEnd, ProtectionFlags, FALSE);
429
+#endif
425
+    IPRT_FREEBSD_RESTORE_EFL_AC();
430
+    IPRT_FREEBSD_RESTORE_EFL_AC();
426
     if (krc == KERN_SUCCESS)
431
     if (krc == KERN_SUCCESS)
427
         return VINF_SUCCESS;
432
         return VINF_SUCCESS;
428
 
433
 
429
@@ -850,11 +910,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
434
@@ -850,11 +914,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
430
 
435
 
431
             vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
436
             vm_offset_t pb = (vm_offset_t)pMemFreeBSD->Core.pv + ptoa(iPage);
432
 
437
 
Lines 450-456 Link Here
450
         }
455
         }
451
 
456
 
452
         case RTR0MEMOBJTYPE_MAPPING:
457
         case RTR0MEMOBJTYPE_MAPPING:
453
@@ -863,11 +931,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
458
@@ -863,11 +935,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
454
 
459
 
455
             if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
460
             if (pMemFreeBSD->Core.u.Mapping.R0Process != NIL_RTR0PROCESS)
456
             {
461
             {
Lines 467-473 Link Here
467
             }
472
             }
468
             return vtophys(pb);
473
             return vtophys(pb);
469
         }
474
         }
470
@@ -877,6 +949,7 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
475
@@ -877,6 +953,7 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
471
         case RTR0MEMOBJTYPE_PHYS_NC:
476
         case RTR0MEMOBJTYPE_PHYS_NC:
472
         {
477
         {
473
             RTHCPHYS addr;
478
             RTHCPHYS addr;
Lines 475-481 Link Here
475
 #if __FreeBSD_version >= 1000030
480
 #if __FreeBSD_version >= 1000030
476
             VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
481
             VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
477
 #else
482
 #else
478
@@ -888,6 +961,7 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
483
@@ -888,6 +965,7 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysAddr(P
479
 #else
484
 #else
480
             VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);
485
             VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);
481
 #endif
486
 #endif

Return to bug 252953