]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'kvm-arm/kvm-arm-next'
authorThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 12:58:43 +0000 (14:58 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 12:58:43 +0000 (14:58 +0200)
Conflicts:
arch/arm/kvm/reset.c

1  2 
arch/arm/include/asm/pgtable-3level.h
arch/arm/kvm/reset.c

index 39c54cfa03e9b103ef39982a43bac74d5436b791,a331d252734257542511a4fdd93b0761d1cec014..4f9503908dca4a7dc536324514801bcbd03d32fd
  #define L_PTE_S2_RDONLY                (_AT(pteval_t, 1) << 6)   /* HAP[1]   */
  #define L_PTE_S2_RDWR          (_AT(pteval_t, 3) << 6)   /* HAP[2:1] */
  
+ #define L_PMD_S2_RDWR          (_AT(pmdval_t, 3) << 6)   /* HAP[2:1] */
  /*
   * Hyp-mode PL2 PTE definitions for LPAE.
   */
@@@ -206,9 -208,6 +208,9 @@@ static inline pmd_t *pmd_offset(pud_t *
  #define __HAVE_ARCH_PMD_WRITE
  #define pmd_write(pmd)                (!(pmd_val(pmd) & PMD_SECT_RDONLY))
  
 +#define pmd_hugewillfault(pmd)        (!pmd_young(pmd) || !pmd_write(pmd))
 +#define pmd_thp_or_huge(pmd)  (pmd_huge(pmd) || pmd_trans_huge(pmd))
 +
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
  #define pmd_trans_huge(pmd)   (pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT))
  #define pmd_trans_splitting(pmd) (pmd_val(pmd) & PMD_SECT_SPLITTING)
diff --combined arch/arm/kvm/reset.c
index d153e64d125505c9a8623521053fbe507db83a2f,2c5add03abfaec1df6aa7fdf941bebbb86bd2307..f558c073c02378a449a05d337d47a8161ae5c51d
@@@ -33,8 -33,6 +33,6 @@@
   * Cortex-A15 and Cortex-A7 Reset Values
   */
  
- static const int cortexa_max_cpu_idx = 3;
  static struct kvm_regs cortexa_regs_reset = {
        .usr_regs.ARM_cpsr = SVC_MODE | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT,
  };
@@@ -58,15 -56,13 +56,13 @@@ static const struct kvm_irq_level corte
   */
  int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
  {
 -      struct kvm_regs *cpu_reset;
 +      struct kvm_regs *reset_regs;
        const struct kvm_irq_level *cpu_vtimer_irq;
  
        switch (vcpu->arch.target) {
        case KVM_ARM_TARGET_CORTEX_A7:
        case KVM_ARM_TARGET_CORTEX_A15:
-               if (vcpu->vcpu_id > cortexa_max_cpu_idx)
-                       return -EINVAL;
 -              cpu_reset = &cortexa_regs_reset;
 +              reset_regs = &cortexa_regs_reset;
                vcpu->arch.midr = read_cpuid_id();
                cpu_vtimer_irq = &cortexa_vtimer_irq;
                break;
@@@ -75,7 -71,7 +71,7 @@@
        }
  
        /* Reset core registers */
 -      memcpy(&vcpu->arch.regs, cpu_reset, sizeof(vcpu->arch.regs));
 +      memcpy(&vcpu->arch.regs, reset_regs, sizeof(vcpu->arch.regs));
  
        /* Reset CP15 registers */
        kvm_reset_coprocs(vcpu);