~ubuntu-branches/ubuntu/quantal/linux-lowlatency/quantal-proposed

« back to all changes in this revision

Viewing changes to arch/x86/kvm/x86.c

  • Committer: Package Import Robot
  • Author(s): Andy Whitcroft, Andy Whitcroft, Ubuntu: 3.5.0-8.8
  • Date: 2012-08-06 10:01:03 UTC
  • Revision ID: package-import@ubuntu.com-20120806100103-fy2yfj838x8zqvkp
Tags: 3.5.0-8.7
[ Andy Whitcroft ]

* [Config] add update-from-master script
* rebase to Ubuntu-3.5.0-8.8

[ Ubuntu: 3.5.0-8.8 ]

* ubuntu: AUFS -- add BOM and automated update script
* ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers
  - LP: #684666
* ubuntu: AUFS -- update aufs-update to track new locations of headers
* ubuntu: AUFS -- clean up the aufs updater and BOM
* ubuntu: AUFS -- documentation on updating aufs2
* ubuntu: AUFS -- fix undefined __devcgroup_inode_permission
* ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245
* ubuntu: AUFS -- updateconfigs following update
* ubuntu: AUFS -- suppress benign plink warning messages
  - LP: #621195
* ubuntu: AUFS -- enable in config and makefile
* ubuntu: AUFS -- disable in favor of overlayfs
* ubuntu: AUFS -- adapt to the new changelog handling
* ubuntu: AUFS -- sort out the relative header paths
* ubuntu: AUFS -- update to d266b0c5d0693d6383976ee54b9e2c0fa9a3f5b0
* ubuntu: AUFS -- aufs3-base.patch
* ubuntu: AUFS -- aufs3-standalone.patch
* ubuntu: AUFS -- update to 4a5e660ed7f5c1d0467c81c535d0fedcfe62d15f
* ubuntu: AUFS -- reenable
* [Config] Add cifs support to the nfs-modules list
  - LP: #1031398
* (pre-stable) iwlwifi: Check BSS ctx active before call mac80211
  - LP: #1021086
* SAUCE: Update aufs for build failure caused by apparmor backport
* SAUCE: firmware: Remove ess files duplicated in linux-firmware
* SAUCE: firmware: Remove kaweth files duplicated in linux-firmware
* SAUCE: firmware: Remove obsolete Chelsio cxgb3 firmware
* SAUCE: firmware: Remove cxgb3 files duplicated in linux-firmware
* SAUCE: firmware: Remove edgeport files duplicated in linux-firmware
* SAUCE: firmware: Remove ti_usb_3410_5052 duplicated in linux-firmware
* SAUCE: firmware: Remove adaptec files duplicated in linux-firmware
* SAUCE: firmware: Remove advansys files duplicated in linux-firmware
* SAUCE: firmware: Remove ambassador files duplicated in linux-firmware
* SAUCE: firmware: Remove av7110 files duplicated in linux-firmware
* SAUCE: cpia2: Declare MODULE_FIRMWARE usage
* SAUCE: firmware: Remove cpia2 files duplicated in linux-firmware
* SAUCE: firmware: Remove korg files duplicated in linux-firmware
* SAUCE: firmware: Remove matrox files duplicated in linux-firmware
* SAUCE: firmware: Remove r128 files duplicated in linux-firmware
* SAUCE: firmware: Remove radeon files duplicated in linux-firmware
* intel_idle: initial IVB support
* KVM: x86: change PT_FIRST_AVAIL_BITS_SHIFT to avoid conflict with EPT
  Dirty bit
* KVM: VMX: Use EPT Access bit in response to memory notifiers
* KVM: VMX: Enable EPT A/D bits if supported by turning on relevant bit
  in EPTP
* KVM: VMX: Add parameter to control A/D bits support, default is on
* KVM: VMX: Add EPT A/D bits definitions
* KVM: VMX: Implement PCID/INVPCID for guests with EPT
* xhci: Export Latency Tolerance Messaging capabilities.
* USB: Fix LPM disable/enable during device reset.
* usb: convert port_owners type from void * to struct dev_state *
* USB: Disable LPM while the device is unconfigured.
* USB: Fix LPM disable count mismatch on driver unbind.
* USB: Enable Latency Tolerance Messaging (LTM).
* drm/i915: enable parity error interrupts
* drm/i915: Dynamic Parity Detection handling
* drm/i915: l3 parity sysfs interface
* drm/i915: remap l3 on hw init
* drm/i915: initialize the parity work only once
* drm/i915: ivybridge_handle_parity_error should be static

Show diffs side-by-side

added added

removed removed

Lines of Context:
528
528
                        return 1;
529
529
        }
530
530
 
 
531
        if (!(cr0 & X86_CR0_PG) && kvm_read_cr4_bits(vcpu, X86_CR4_PCIDE))
 
532
                return 1;
 
533
 
531
534
        kvm_x86_ops->set_cr0(vcpu, cr0);
532
535
 
533
536
        if ((cr0 ^ old_cr0) & X86_CR0_PG) {
604
607
                                   kvm_read_cr3(vcpu)))
605
608
                return 1;
606
609
 
 
610
        if ((cr4 & X86_CR4_PCIDE) && !(old_cr4 & X86_CR4_PCIDE)) {
 
611
                if (!guest_cpuid_has_pcid(vcpu))
 
612
                        return 1;
 
613
 
 
614
                /* PCID can not be enabled when cr3[11:0]!=000H or EFER.LMA=0 */
 
615
                if ((kvm_read_cr3(vcpu) & X86_CR3_PCID_MASK) || !is_long_mode(vcpu))
 
616
                        return 1;
 
617
        }
 
618
 
607
619
        if (kvm_x86_ops->set_cr4(vcpu, cr4))
608
620
                return 1;
609
621
 
610
 
        if ((cr4 ^ old_cr4) & pdptr_bits)
 
622
        if (((cr4 ^ old_cr4) & pdptr_bits) ||
 
623
            (!(cr4 & X86_CR4_PCIDE) && (old_cr4 & X86_CR4_PCIDE)))
611
624
                kvm_mmu_reset_context(vcpu);
612
625
 
613
626
        if ((cr4 ^ old_cr4) & X86_CR4_OSXSAVE)
626
639
        }
627
640
 
628
641
        if (is_long_mode(vcpu)) {
629
 
                if (cr3 & CR3_L_MODE_RESERVED_BITS)
630
 
                        return 1;
 
642
                if (kvm_read_cr4(vcpu) & X86_CR4_PCIDE) {
 
643
                        if (cr3 & CR3_PCID_ENABLED_RESERVED_BITS)
 
644
                                return 1;
 
645
                } else
 
646
                        if (cr3 & CR3_L_MODE_RESERVED_BITS)
 
647
                                return 1;
631
648
        } else {
632
649
                if (is_pae(vcpu)) {
633
650
                        if (cr3 & CR3_PAE_RESERVED_BITS)