VirtualBox

Changeset 86472 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Oct 7, 2020 5:22:00 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140781
Message:

VMM/PGMPool: Working on eliminating page table bitfield use. bugref:9841 bugref:9746

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PGMPool.cpp

    r86470 r86472  
    9797*********************************************************************************************************************************/
    9898#define LOG_GROUP LOG_GROUP_PGM_POOL
     99#define VBOX_WITHOUT_PAGING_BIT_FIELDS /* 64-bit bitfields are just asking for trouble. See @bugref{9841} and others. */
    99100#include <VBox/vmm/pgm.h>
    100101#include <VBox/vmm/mm.h>
     
    563564                        {
    564565                            Assert((pShwPD->a[i].u & UINT64_C(0xfff0000000000f80)) == 0);
    565                             if (    pShwPD->a[i].n.u1Present
    566                                 &&  pShwPD->a[i].b.u1Size)
     566                            if ((pShwPD->a[i].u & (EPT_E_READ | EPT_E_LEAF)) == (EPT_E_READ | EPT_E_LEAF))
    567567                            {
    568568# ifndef PGM_WITHOUT_MAPPINGS
     
    815815                    for (unsigned iShw = 0; iShw < RT_ELEMENTS(uShw.pPTEpt->a); iShw++)
    816816                    {
    817                         if (uShw.pPTEpt->a[iShw].n.u1Present)
    818                             uShw.pPTEpt->a[iShw].n.u1Write = 0;
     817                        if (uShw.pPTEpt->a[iShw].u & EPT_E_READ)
     818                            uShw.pPTEpt->a[iShw].u &= ~(X86PGPAEUINT)EPT_E_WRITE;
    819819                    }
    820820                    break;
Note: See TracChangeset for help on using the changeset viewer.

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