> @@ -480,6 +520,7 @@ int isa207_compute_mmcr(u64 event[], int n_ev, > mmcr[1] = mmcr1; > mmcr[2] = mmcra; > mmcr[3] = mmcr2; > + mmcr[4] = mmcr3;
This is fragile like the kvm vcpu case I commented on before but it gets passed in via a function parameter?! Can you create a struct to store these in rather than this odd ball numbering? The cleanup should start in patch 1/10 here: /* * The order of the MMCR array is: - * - 64-bit, MMCR0, MMCR1, MMCRA, MMCR2 + * - 64-bit, MMCR0, MMCR1, MMCRA, MMCR2, MMCR3 * - 32-bit, MMCR0, MMCR1, MMCR2 */ - unsigned long mmcr[4]; + unsigned long mmcr[5]; mikey