VirtualBox

Ignore:
Timestamp:
Dec 29, 2022 7:15:56 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
155000
Message:

IPRT/r0drv: Kicked out RTMEMHDR_FLAG_EXEC and associated code now that RTMemExecAlloc have been removed and RTMEMALLOCEX_FLAGS_EXEC is ring-3 only. This should simplify maintaining the linux code a bit, I hope. bugref:4567:65

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/solaris/alloc-r0drv-solaris.c

    r97900 r97910  
    8080    size_t      cbAllocated = cb;
    8181    PRTMEMHDR   pHdr;
    82 
    83 #ifdef RT_ARCH_AMD64
    84     if (fFlags & RTMEMHDR_FLAG_EXEC)
    85     {
    86         AssertReturn(!(fFlags & RTMEMHDR_FLAG_ANY_CTX), VERR_NOT_SUPPORTED);
    87         cbAllocated = RT_ALIGN_Z(cb + sizeof(*pHdr), PAGE_SIZE) - sizeof(*pHdr);
    88         pHdr = (PRTMEMHDR)segkmem_alloc(heaptext_arena, cbAllocated + sizeof(*pHdr), KM_SLEEP);
    89     }
     82    unsigned fKmFlags = fFlags & RTMEMHDR_FLAG_ANY_CTX_ALLOC ? KM_NOSLEEP : KM_SLEEP;
     83    if (fFlags & RTMEMHDR_FLAG_ZEROED)
     84        pHdr = (PRTMEMHDR)kmem_zalloc(cb + sizeof(*pHdr), fKmFlags);
    9085    else
    91 #endif
    92     {
    93         unsigned fKmFlags = fFlags & RTMEMHDR_FLAG_ANY_CTX_ALLOC ? KM_NOSLEEP : KM_SLEEP;
    94         if (fFlags & RTMEMHDR_FLAG_ZEROED)
    95             pHdr = (PRTMEMHDR)kmem_zalloc(cb + sizeof(*pHdr), fKmFlags);
    96         else
    97             pHdr = (PRTMEMHDR)kmem_alloc(cb + sizeof(*pHdr), fKmFlags);
    98     }
     86        pHdr = (PRTMEMHDR)kmem_alloc(cb + sizeof(*pHdr), fKmFlags);
    9987    if (RT_UNLIKELY(!pHdr))
    10088    {
     
    119107{
    120108    pHdr->u32Magic += 1;
    121 #ifdef RT_ARCH_AMD64
    122     if (pHdr->fFlags & RTMEMHDR_FLAG_EXEC)
    123         segkmem_free(heaptext_arena, pHdr, pHdr->cb + sizeof(*pHdr));
    124     else
    125 #endif
    126         kmem_free(pHdr, pHdr->cb + sizeof(*pHdr));
     109    kmem_free(pHdr, pHdr->cb + sizeof(*pHdr));
    127110}
    128111
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette