*/
 struct kvm_host_data {
        struct kvm_cpu_context host_ctxt;
+
+       /*
+        * host_debug_state contains the host registers which are
+        * saved and restored during world switches.
+        */
+        struct {
+               /* {Break,watch}point registers */
+               struct kvm_guest_debug_arch regs;
+               /* Statistical profiling extension */
+               u64 pmscr_el1;
+               /* Self-hosted trace */
+               u64 trfcr_el1;
+       } host_debug_state;
 };
 
 struct kvm_host_psci_config {
         * We maintain more than a single set of debug registers to support
         * debugging the guest from the host and to maintain separate host and
         * guest state during world switches. vcpu_debug_state are the debug
-        * registers of the vcpu as the guest sees them.  host_debug_state are
-        * the host registers which are saved and restored during
-        * world switches. external_debug_state contains the debug
-        * values we want to debug the guest. This is set via the
-        * KVM_SET_GUEST_DEBUG ioctl.
+        * registers of the vcpu as the guest sees them.
+        *
+        * external_debug_state contains the debug values we want to debug the
+        * guest. This is set via the KVM_SET_GUEST_DEBUG ioctl.
         *
         * debug_ptr points to the set of debug registers that should be loaded
         * onto the hardware when running the guest.
        struct user_fpsimd_state *host_fpsimd_state;    /* hyp VA */
        struct task_struct *parent_task;
 
-       struct {
-               /* {Break,watch}point registers */
-               struct kvm_guest_debug_arch regs;
-               /* Statistical profiling extension */
-               u64 pmscr_el1;
-               /* Self-hosted trace */
-               u64 trfcr_el1;
-       } host_debug_state;
-
        /* VGIC state */
        struct vgic_cpu vgic_cpu;
        struct arch_timer_cpu timer_cpu;
 
 
        host_ctxt = host_data_ptr(host_ctxt);
        guest_ctxt = &vcpu->arch.ctxt;
-       host_dbg = &vcpu->arch.host_debug_state.regs;
+       host_dbg = host_data_ptr(host_debug_state.regs);
        guest_dbg = kern_hyp_va(vcpu->arch.debug_ptr);
 
        __debug_save_state(host_dbg, host_ctxt);
 
        host_ctxt = host_data_ptr(host_ctxt);
        guest_ctxt = &vcpu->arch.ctxt;
-       host_dbg = &vcpu->arch.host_debug_state.regs;
+       host_dbg = host_data_ptr(host_debug_state.regs);
        guest_dbg = kern_hyp_va(vcpu->arch.debug_ptr);
 
        __debug_save_state(guest_dbg, guest_ctxt);
 
 {
        /* Disable and flush SPE data generation */
        if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_SPE))
-               __debug_save_spe(&vcpu->arch.host_debug_state.pmscr_el1);
+               __debug_save_spe(host_data_ptr(host_debug_state.pmscr_el1));
        /* Disable and flush Self-Hosted Trace generation */
        if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_TRBE))
-               __debug_save_trace(&vcpu->arch.host_debug_state.trfcr_el1);
+               __debug_save_trace(host_data_ptr(host_debug_state.trfcr_el1));
 }
 
 void __debug_switch_to_guest(struct kvm_vcpu *vcpu)
 void __debug_restore_host_buffers_nvhe(struct kvm_vcpu *vcpu)
 {
        if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_SPE))
-               __debug_restore_spe(vcpu->arch.host_debug_state.pmscr_el1);
+               __debug_restore_spe(*host_data_ptr(host_debug_state.pmscr_el1));
        if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_TRBE))
-               __debug_restore_trace(vcpu->arch.host_debug_state.trfcr_el1);
+               __debug_restore_trace(*host_data_ptr(host_debug_state.trfcr_el1));
 }
 
 void __debug_switch_to_host(struct kvm_vcpu *vcpu)