diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2014-07-10 05:34:31 -0400 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2014-12-28 23:45:55 -0500 |
commit | 9a4fc4eaf111ca960c9f524b850598e9dbc9697f (patch) | |
tree | 0c34f91c32c3fb06161a3fadc30858ccd743d634 /arch/powerpc/kernel | |
parent | 803d57de2b27000ed4400d16561c75821efe8333 (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.c | 15 |
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); |