target-ppc: Move cpu_exec_init() call to realize function
Move cpu_exec_init() call from instance_init to realize. This allows any failures from cpu_exec_init() to be handled appropriately. Also add corresponding cpu_exec_exit() call from unrealize. cpu_dt_id assignment from instance_init is no longer needed since correct assignment for cpu_dt_id is already present in realizefn. Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com> [AF: Keep calling cpu_exec_init() for CONFIG_USER_ONLY] Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
		
							parent
							
								
									b7bca73334
								
							
						
					
					
						commit
						6dd0f8342d
					
				| 
						 | 
				
			
			@ -8927,7 +8927,15 @@ static void ppc_cpu_realizefn(DeviceState *dev, Error **errp)
 | 
			
		|||
                   smp_threads, kvm_enabled() ? "KVM" : "TCG");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    cpu_exec_init(&cpu->env, &local_err);
 | 
			
		||||
    if (local_err != NULL) {
 | 
			
		||||
        error_propagate(errp, local_err);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if !defined(CONFIG_USER_ONLY)
 | 
			
		||||
    cpu->cpu_dt_id = (cs->cpu_index / smp_threads) * max_smt
 | 
			
		||||
        + (cs->cpu_index % smp_threads);
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -9141,6 +9149,8 @@ static void ppc_cpu_unrealizefn(DeviceState *dev, Error **errp)
 | 
			
		|||
    opc_handler_t **table;
 | 
			
		||||
    int i, j;
 | 
			
		||||
 | 
			
		||||
    cpu_exec_exit(CPU(dev));
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < PPC_CPU_OPCODES_LEN; i++) {
 | 
			
		||||
        if (env->opcodes[i] == &invalid_handler) {
 | 
			
		||||
            continue;
 | 
			
		||||
| 
						 | 
				
			
			@ -9633,8 +9643,6 @@ static void ppc_cpu_initfn(Object *obj)
 | 
			
		|||
    CPUPPCState *env = &cpu->env;
 | 
			
		||||
 | 
			
		||||
    cs->env_ptr = env;
 | 
			
		||||
    cpu_exec_init(env, &error_abort);
 | 
			
		||||
    cpu->cpu_dt_id = cs->cpu_index;
 | 
			
		||||
 | 
			
		||||
    env->msr_mask = pcc->msr_mask;
 | 
			
		||||
    env->mmu_model = pcc->mmu_model;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue