[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH -V3 4/4] target-ppc: Use #define for max slb entri
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [PATCH -V3 4/4] target-ppc: Use #define for max slb entries |
Date: |
Sun, 25 Aug 2013 19:33:07 +0100 |
On 23.08.2013, at 06:20, Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V" <address@hidden>
>
> Instead of opencoding 64 use MAX_SLB_ENTRIES. We don't update the kernel
> header here.
Ah, here you're fixing up the hardcoded 64 :). Could you please check whether
ARRAY_SIZE() works in all these as well? If not, this patch is good.
Alex
>
> Signed-off-by: Aneesh Kumar K.V <address@hidden>
> ---
> target-ppc/cpu.h | 3 ++-
> target-ppc/kvm.c | 6 +++---
> target-ppc/machine.c | 2 +-
> 3 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
> index 711db08..b06818e 100644
> --- a/target-ppc/cpu.h
> +++ b/target-ppc/cpu.h
> @@ -405,6 +405,7 @@ struct ppc_slb_t {
> uint64_t vsid;
> };
>
> +#define MAX_SLB_ENTRIES 64
> #define SEGMENT_SHIFT_256M 28
> #define SEGMENT_MASK_256M (~((1ULL << SEGMENT_SHIFT_256M) - 1))
>
> @@ -947,7 +948,7 @@ struct CPUPPCState {
> #if !defined(CONFIG_USER_ONLY)
> #if defined(TARGET_PPC64)
> /* PowerPC 64 SLB area */
> - ppc_slb_t slb[64];
> + ppc_slb_t slb[MAX_SLB_ENTRIES];
> int32_t slb_nr;
> #endif
> /* segment registers */
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index bcc6544..fce8835 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -818,7 +818,7 @@ int kvm_arch_put_registers(CPUState *cs, int level)
>
> /* Sync SLB */
> #ifdef TARGET_PPC64
> - for (i = 0; i < 64; i++) {
> + for (i = 0; i < MAX_SLB_ENTRIES; i++) {
> sregs.u.s.ppc64.slb[i].slbe = env->slb[i].esid;
> sregs.u.s.ppc64.slb[i].slbv = env->slb[i].vsid;
> }
> @@ -1042,8 +1042,8 @@ int kvm_arch_get_registers(CPUState *cs)
> * the env->slb array first so that we mark all entries invalid and
> * update with only valid SLB entries.
> */
> - memset(env->slb, 0, 64 * sizeof(ppc_slb_t));
> - for (i = 0; i < 64; i++) {
> + memset(env->slb, 0, MAX_SLB_ENTRIES * sizeof(ppc_slb_t));
> + for (i = 0; i < MAX_SLB_ENTRIES; i++) {
> target_ulong rb = sregs.u.s.ppc64.slb[i].slbe;
> target_ulong rs = sregs.u.s.ppc64.slb[i].slbv;
> /*
> diff --git a/target-ppc/machine.c b/target-ppc/machine.c
> index 12e1512..12c174f 100644
> --- a/target-ppc/machine.c
> +++ b/target-ppc/machine.c
> @@ -312,7 +312,7 @@ static const VMStateDescription vmstate_slb = {
> .minimum_version_id_old = 1,
> .fields = (VMStateField []) {
> VMSTATE_INT32_EQUAL(env.slb_nr, PowerPCCPU),
> - VMSTATE_SLB_ARRAY(env.slb, PowerPCCPU, 64),
> + VMSTATE_SLB_ARRAY(env.slb, PowerPCCPU, MAX_SLB_ENTRIES),
> VMSTATE_END_OF_LIST()
> }
> };
> --
> 1.8.1.2
>