VirtualBox

Changeset 24368 in vbox


Ignore:
Timestamp:
Nov 5, 2009 8:15:02 AM (15 years ago)
Author:
vboxsync
Message:

Additional check for in-use AMD-V.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp

    r24032 r24368  
    556556            /* Turn on SVM in the EFER MSR. */
    557557            val = ASMRdMsr(MSR_K6_EFER);
    558             if (!(val & MSR_K6_EFER_SVME))
    559                 ASMWrMsr(MSR_K6_EFER, val | MSR_K6_EFER_SVME);
    560 
    561             /* Paranoia. */
    562             val = ASMRdMsr(MSR_K6_EFER);
    563558            if (val & MSR_K6_EFER_SVME)
    564559            {
    565                 /* Restore previous value. */
    566                 ASMWrMsr(MSR_K6_EFER, val & ~MSR_K6_EFER_SVME);
    567                 paRc[idCpu] = VINF_SUCCESS;
     560                paRc[idCpu] = VERR_SVM_IN_USE;
    568561            }
    569562            else
    570                 paRc[idCpu] = VERR_SVM_ILLEGAL_EFER_MSR;
     563            {
     564                ASMWrMsr(MSR_K6_EFER, val | MSR_K6_EFER_SVME);
     565
     566                /* Paranoia. */
     567                val = ASMRdMsr(MSR_K6_EFER);
     568                if (val & MSR_K6_EFER_SVME)
     569                {
     570                    /* Restore previous value. */
     571                    ASMWrMsr(MSR_K6_EFER, val & ~MSR_K6_EFER_SVME);
     572                    paRc[idCpu] = VINF_SUCCESS;
     573                }
     574                else
     575                    paRc[idCpu] = VERR_SVM_ILLEGAL_EFER_MSR;
     576            }
    571577        }
    572578        else
    573             paRc[idCpu] = HWACCMR0Globals.lLastError = VERR_SVM_DISABLED;
     579            paRc[idCpu] = VERR_SVM_DISABLED;
    574580    }
    575581    else
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