@@ -637,12 +637,12 @@ struct kvm_vcpu_arch { > u32 ccr1; > u32 dbsr; > > - u64 mmcr[5]; > + u64 mmcr[6]; > u32 pmc[8]; > u32 spmc[2]; > u64 siar;
> + mfspr r5, SPRN_MMCR3 > + mfspr r6, SPRN_SIER2 > + mfspr r7, SPRN_SIER3 > + std r5, VCPU_MMCR + 40(r9) > + std r6, VCPU_SIER + 8(r9) > + std r7, VCPU_SIER + 16(r9) This is looking pretty fragile now. vcpu mmcr[6] stores (in this strict order): mmcr0, mmcr1, mmcra, mmcr2, mmcrs, mmmcr3. Can we clean that up? Give mmcra and mmcrs their own entries in vcpu and then have a flat array for mmcr0-3. Mikey