@@ -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

Reply via email to