Merge remote-tracking branch 'upstream/master' into queue
Merging critical fixes from upstream required for development. * upstream/master: (809 commits) libata: Add a space to " 2GB ATA Flash Disk" DMA blacklist entry Revert "powerpc: Update g5_defconfig" powerpc/perf: Use pmc_overflow() to detect rolled back events powerpc: Fix VMX in interrupt check in POWER7 copy loops powerpc: POWER7 copy_to_user/copy_from_user patch applied twice powerpc: Fix personality handling in ppc64_personality() powerpc/dma-iommu: Fix IOMMU window check powerpc: Remove unnecessary ifdefs powerpc/kgdb: Restore current_thread_info properly powerpc/kgdb: Bail out of KGDB when we've been triggered powerpc/kgdb: Do not set kgdb_single_step on ppc powerpc/mpic_msgr: Add missing includes powerpc: Fix null pointer deref in perf hardware breakpoints powerpc: Fixup whitespace in xmon powerpc: Fix xmon dl command for new printk implementation xfs: check for possible overflow in xfs_ioc_trim xfs: unlock the AGI buffer when looping in xfs_dialloc xfs: fix uninitialised variable in xfs_rtbuf_get() powerpc/fsl: fix "Failed to mount /dev: No such device" errors powerpc/fsl: update defconfigs ... Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
@@ -211,6 +211,9 @@ next_pteg:
|
||||
pteg1 |= PP_RWRX;
|
||||
}
|
||||
|
||||
if (orig_pte->may_execute)
|
||||
kvmppc_mmu_flush_icache(hpaddr >> PAGE_SHIFT);
|
||||
|
||||
local_irq_disable();
|
||||
|
||||
if (pteg[rr]) {
|
||||
|
@@ -126,6 +126,8 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)
|
||||
|
||||
if (!orig_pte->may_execute)
|
||||
rflags |= HPTE_R_N;
|
||||
else
|
||||
kvmppc_mmu_flush_icache(hpaddr >> PAGE_SHIFT);
|
||||
|
||||
hash = hpt_hash(va, PTE_SIZE, MMU_SEGSIZE_256M);
|
||||
|
||||
|
@@ -1421,13 +1421,13 @@ _GLOBAL(kvmppc_h_cede)
|
||||
sync /* order setting ceded vs. testing prodded */
|
||||
lbz r5,VCPU_PRODDED(r3)
|
||||
cmpwi r5,0
|
||||
bne 1f
|
||||
bne kvm_cede_prodded
|
||||
li r0,0 /* set trap to 0 to say hcall is handled */
|
||||
stw r0,VCPU_TRAP(r3)
|
||||
li r0,H_SUCCESS
|
||||
std r0,VCPU_GPR(R3)(r3)
|
||||
BEGIN_FTR_SECTION
|
||||
b 2f /* just send it up to host on 970 */
|
||||
b kvm_cede_exit /* just send it up to host on 970 */
|
||||
END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)
|
||||
|
||||
/*
|
||||
@@ -1446,7 +1446,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)
|
||||
or r4,r4,r0
|
||||
PPC_POPCNTW(R7,R4)
|
||||
cmpw r7,r8
|
||||
bge 2f
|
||||
bge kvm_cede_exit
|
||||
stwcx. r4,0,r6
|
||||
bne 31b
|
||||
li r0,1
|
||||
@@ -1555,7 +1555,8 @@ kvm_end_cede:
|
||||
b hcall_real_fallback
|
||||
|
||||
/* cede when already previously prodded case */
|
||||
1: li r0,0
|
||||
kvm_cede_prodded:
|
||||
li r0,0
|
||||
stb r0,VCPU_PRODDED(r3)
|
||||
sync /* order testing prodded vs. clearing ceded */
|
||||
stb r0,VCPU_CEDED(r3)
|
||||
@@ -1563,7 +1564,8 @@ kvm_end_cede:
|
||||
blr
|
||||
|
||||
/* we've ceded but we want to give control to the host */
|
||||
2: li r3,H_TOO_HARD
|
||||
kvm_cede_exit:
|
||||
li r3,H_TOO_HARD
|
||||
blr
|
||||
|
||||
secondary_too_late:
|
||||
|
@@ -322,11 +322,11 @@ static inline void kvmppc_e500_ref_release(struct tlbe_ref *ref)
|
||||
static void clear_tlb1_bitmap(struct kvmppc_vcpu_e500 *vcpu_e500)
|
||||
{
|
||||
if (vcpu_e500->g2h_tlb1_map)
|
||||
memset(vcpu_e500->g2h_tlb1_map,
|
||||
sizeof(u64) * vcpu_e500->gtlb_params[1].entries, 0);
|
||||
memset(vcpu_e500->g2h_tlb1_map, 0,
|
||||
sizeof(u64) * vcpu_e500->gtlb_params[1].entries);
|
||||
if (vcpu_e500->h2g_tlb1_rmap)
|
||||
memset(vcpu_e500->h2g_tlb1_rmap,
|
||||
sizeof(unsigned int) * host_tlb_params[1].entries, 0);
|
||||
memset(vcpu_e500->h2g_tlb1_rmap, 0,
|
||||
sizeof(unsigned int) * host_tlb_params[1].entries);
|
||||
}
|
||||
|
||||
static void clear_tlb_privs(struct kvmppc_vcpu_e500 *vcpu_e500)
|
||||
@@ -538,6 +538,9 @@ static inline void kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
|
||||
|
||||
kvmppc_e500_setup_stlbe(&vcpu_e500->vcpu, gtlbe, tsize,
|
||||
ref, gvaddr, stlbe);
|
||||
|
||||
/* Clear i-cache for new pages */
|
||||
kvmppc_mmu_flush_icache(pfn);
|
||||
}
|
||||
|
||||
/* XXX only map the one-one case, for now use TLB0 */
|
||||
|
Reference in New Issue
Block a user