{
        int ret;
  
-       struct thread_info *ti = ¤t->thread_info;
        struct user_fpsimd_state *fpsimd = ¤t->thread.uw.fpsimd_state;
  
-       /*
-        * Make sure the host task thread flags and fpsimd state are
-        * visible to hyp:
-        */
-       ret = create_hyp_mappings(ti, ti + 1, PAGE_HYP);
-       if (ret)
-               goto error;
- 
+       /* Make sure the host task fpsimd state is visible to hyp: */
        ret = create_hyp_mappings(fpsimd, fpsimd + 1, PAGE_HYP);
--      if (ret)
--              goto error;
++      if (!ret)
++              vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd);
  
-       vcpu->arch.host_thread_info = kern_hyp_va(ti);
 -      if (vcpu->arch.sve_state) {
 -              void *sve_end;
 -
 -              sve_end = vcpu->arch.sve_state + vcpu_sve_state_size(vcpu);
 -
 -              ret = create_hyp_mappings(vcpu->arch.sve_state, sve_end,
 -                                        PAGE_HYP);
 -              if (ret)
 -                      goto error;
 -      }
 -
--      vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd);
--error:
        return ret;
  }