]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'kvm/linux-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 19 Jun 2013 04:39:28 +0000 (14:39 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 19 Jun 2013 04:39:28 +0000 (14:39 +1000)
Conflicts:
arch/s390/include/asm/pgtable.h

1  2 
arch/s390/include/asm/pgtable.h
arch/s390/mm/pgtable.c
arch/x86/kvm/emulate.c
arch/x86/kvm/lapic.c
virt/kvm/arm/arch_timer.c

index e8b6e5b8932c39fa7ff0d824d5c60f4ebe5e5fcf,1d0ad7d2d29a433e6a1de4981ca5a2e6279b57a8..90dd3a95e72e49758544b7daca5f8662493b3fb9
@@@ -632,11 -628,10 +628,11 @@@ static inline void pgste_set_unlock(pte
  {
  #ifdef CONFIG_PGSTE
        asm(
-               "       nihh    %1,0xff7f\n"    /* clear RCP_PCL_BIT */
+               "       nihh    %1,0xff7f\n"    /* clear PCL bit */
                "       stg     %1,%0\n"
                : "=Q" (ptep[PTRS_PER_PTE])
 -              : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE]) : "cc");
 +              : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE])
 +              : "cc", "memory");
        preempt_enable();
  #endif
  }
@@@ -712,19 -700,17 +708,19 @@@ static inline void pgste_set_key(pte_t 
  {
  #ifdef CONFIG_PGSTE
        unsigned long address;
 -      unsigned long okey, nkey;
 +      unsigned long nkey;
  
 -      if (!pte_present(entry))
 +      if (pte_val(entry) & _PAGE_INVALID)
                return;
 +      VM_BUG_ON(!(pte_val(*ptep) & _PAGE_INVALID));
        address = pte_val(entry) & PAGE_MASK;
 -      okey = nkey = page_get_storage_key(address);
 -      nkey &= ~(_PAGE_ACC_BITS | _PAGE_FP_BIT);
 -      /* Set page access key and fetch protection bit from pgste */
 -      nkey |= (pgste_val(pgste) & (PGSTE_ACC_BITS | PGSTE_FP_BIT)) >> 56;
 -      if (okey != nkey)
 -              page_set_storage_key(address, nkey, 0);
 +      /*
 +       * Set page access key and fetch protection bit from pgste.
 +       * The guest C/R information is still in the PGSTE, set real
 +       * key C/R to 0.
 +       */
-       nkey = (pgste_val(pgste) & (RCP_ACC_BITS | RCP_FP_BIT)) >> 56;
++      nkey = (pgste_val(pgste) & (PGSTE_ACC_BITS | PGSTE_FP_BIT)) >> 56;
 +      page_set_storage_key(address, nkey, 0);
  #endif
  }
  
Simple merge
Simple merge
Simple merge
Simple merge