aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2014-07-10 05:34:31 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2014-12-28 23:45:55 -0500
commit9a4fc4eaf111ca960c9f524b850598e9dbc9697f (patch)
tree0c34f91c32c3fb06161a3fadc30858ccd743d634 /arch/powerpc/kernel
parent803d57de2b27000ed4400d16561c75821efe8333 (diff)
powerpc/kvm: Create proper names for the kvm_host_state PMU fields
We have two arrays in kvm_host_state that contain register values for the PMU. Currently we only create an asm-offsets symbol for the base of the arrays, and do the array offset in the assembly code. Creating an asm-offsets symbol for each field individually makes the code much nicer to read, particularly for the MMCRx/SIxR/SDAR fields, and might have helped us notice the recent double restore bug we had in this code. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Acked-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/asm-offsets.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index e624f9646350..4717859fdd04 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -644,8 +644,19 @@ int main(void)
644 HSTATE_FIELD(HSTATE_SAVED_XIRR, saved_xirr); 644 HSTATE_FIELD(HSTATE_SAVED_XIRR, saved_xirr);
645 HSTATE_FIELD(HSTATE_HOST_IPI, host_ipi); 645 HSTATE_FIELD(HSTATE_HOST_IPI, host_ipi);
646 HSTATE_FIELD(HSTATE_PTID, ptid); 646 HSTATE_FIELD(HSTATE_PTID, ptid);
647 HSTATE_FIELD(HSTATE_MMCR, host_mmcr); 647 HSTATE_FIELD(HSTATE_MMCR0, host_mmcr[0]);
648 HSTATE_FIELD(HSTATE_PMC, host_pmc); 648 HSTATE_FIELD(HSTATE_MMCR1, host_mmcr[1]);
649 HSTATE_FIELD(HSTATE_MMCRA, host_mmcr[2]);
650 HSTATE_FIELD(HSTATE_SIAR, host_mmcr[3]);
651 HSTATE_FIELD(HSTATE_SDAR, host_mmcr[4]);
652 HSTATE_FIELD(HSTATE_MMCR2, host_mmcr[5]);
653 HSTATE_FIELD(HSTATE_SIER, host_mmcr[6]);
654 HSTATE_FIELD(HSTATE_PMC1, host_pmc[0]);
655 HSTATE_FIELD(HSTATE_PMC2, host_pmc[1]);
656 HSTATE_FIELD(HSTATE_PMC3, host_pmc[2]);
657 HSTATE_FIELD(HSTATE_PMC4, host_pmc[3]);
658 HSTATE_FIELD(HSTATE_PMC5, host_pmc[4]);
659 HSTATE_FIELD(HSTATE_PMC6, host_pmc[5]);
649 HSTATE_FIELD(HSTATE_PURR, host_purr); 660 HSTATE_FIELD(HSTATE_PURR, host_purr);
650 HSTATE_FIELD(HSTATE_SPURR, host_spurr); 661 HSTATE_FIELD(HSTATE_SPURR, host_spurr);
651 HSTATE_FIELD(HSTATE_DSCR, host_dscr); 662 HSTATE_FIELD(HSTATE_DSCR, host_dscr);