Revision 49e15878

b/hw/s390x/ipl.c
58 58

  
59 59
static void s390_ipl_cpu(uint64_t pswaddr)
60 60
{
61
    CPUS390XState *env = &S390_CPU(qemu_get_cpu(0))->env;
61
    S390CPU *cpu = S390_CPU(qemu_get_cpu(0));
62
    CPUS390XState *env = &cpu->env;
63

  
62 64
    env->psw.addr = pswaddr;
63 65
    env->psw.mask = IPL_PSW_MASK;
64
    s390_add_running_cpu(env);
66
    s390_add_running_cpu(cpu);
65 67
}
66 68

  
67 69
static int s390_ipl_init(SysBusDevice *dev)
b/hw/s390x/s390-virtio.c
130 130
 */
131 131
static unsigned s390_running_cpus;
132 132

  
133
void s390_add_running_cpu(CPUS390XState *env)
133
void s390_add_running_cpu(S390CPU *cpu)
134 134
{
135
    CPUS390XState *env = &cpu->env;
136

  
135 137
    if (env->halted) {
136 138
        s390_running_cpus++;
137 139
        env->halted = 0;
......
139 141
    }
140 142
}
141 143

  
142
unsigned s390_del_running_cpu(CPUS390XState *env)
144
unsigned s390_del_running_cpu(S390CPU *cpu)
143 145
{
146
    CPUS390XState *env = &cpu->env;
147

  
144 148
    if (env->halted == 0) {
145 149
        assert(s390_running_cpus >= 1);
146 150
        s390_running_cpus--;
b/target-s390x/cpu.c
70 70
        log_cpu_state(env, 0);
71 71
    }
72 72

  
73
    s390_del_running_cpu(env);
73
    s390_del_running_cpu(cpu);
74 74

  
75 75
    scc->parent_reset(s);
76 76

  
b/target-s390x/cpu.h
375 375
}
376 376
#endif
377 377
S390CPU *s390_cpu_addr2state(uint16_t cpu_addr);
378
void s390_add_running_cpu(CPUS390XState *env);
379
unsigned s390_del_running_cpu(CPUS390XState *env);
378
void s390_add_running_cpu(S390CPU *cpu);
379
unsigned s390_del_running_cpu(S390CPU *cpu);
380 380

  
381 381
/* service interrupts are floating therefore we must not pass an cpustate */
382 382
void s390_sclp_extint(uint32_t parm);
......
385 385
extern const hwaddr virtio_size;
386 386

  
387 387
#else
388
static inline void s390_add_running_cpu(CPUS390XState *env)
388
static inline void s390_add_running_cpu(S390CPU *cpu)
389 389
{
390 390
}
391 391

  
392
static inline unsigned s390_del_running_cpu(CPUS390XState *env)
392
static inline unsigned s390_del_running_cpu(S390CPU *cpu)
393 393
{
394 394
    return 0;
395 395
}
b/target-s390x/helper.c
441 441
void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr)
442 442
{
443 443
    if (mask & PSW_MASK_WAIT) {
444
        S390CPU *cpu = s390_env_get_cpu(env);
444 445
        if (!(mask & (PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK))) {
445
            if (s390_del_running_cpu(env) == 0) {
446
            if (s390_del_running_cpu(cpu) == 0) {
446 447
#ifndef CONFIG_USER_ONLY
447 448
                qemu_system_shutdown_request();
448 449
#endif
......
742 743
    qemu_log_mask(CPU_LOG_INT, "%s: %d at pc=%" PRIx64 "\n",
743 744
                  __func__, env->exception_index, env->psw.addr);
744 745

  
745
    s390_add_running_cpu(env);
746
    s390_add_running_cpu(cpu);
746 747
    /* handle machine checks */
747 748
    if ((env->psw.mask & PSW_MASK_MCHECK) &&
748 749
        (env->exception_index == -1)) {
b/target-s390x/kvm.c
570 570

  
571 571
static int s390_cpu_restart(S390CPU *cpu)
572 572
{
573
    CPUS390XState *env = &cpu->env;
574

  
575 573
    kvm_s390_interrupt(cpu, KVM_S390_RESTART, 0);
576
    s390_add_running_cpu(env);
574
    s390_add_running_cpu(cpu);
577 575
    qemu_cpu_kick(CPU(cpu));
578
    dprintf("DONE: SIGP cpu restart: %p\n", env);
576
    dprintf("DONE: SIGP cpu restart: %p\n", &cpu->env);
579 577
    return 0;
580 578
}
581 579

  
......
591 589
    CPUS390XState *env = &cpu->env;
592 590
    int i;
593 591

  
594
    s390_del_running_cpu(env);
592
    s390_del_running_cpu(cpu);
595 593
    if (kvm_vcpu_ioctl(CPU(cpu), KVM_S390_INITIAL_RESET, NULL) < 0) {
596 594
        perror("cannot init reset vcpu");
597 595
    }
......
701 699

  
702 700
static int handle_intercept(S390CPU *cpu)
703 701
{
704
    CPUS390XState *env = &cpu->env;
705 702
    CPUState *cs = CPU(cpu);
706 703
    struct kvm_run *run = cs->kvm_run;
707 704
    int icpt_code = run->s390_sieic.icptcode;
......
714 711
            r = handle_instruction(cpu, run);
715 712
            break;
716 713
        case ICPT_WAITPSW:
717
            if (s390_del_running_cpu(env) == 0 &&
714
            if (s390_del_running_cpu(cpu) == 0 &&
718 715
                is_special_wait_psw(cs)) {
719 716
                qemu_system_shutdown_request();
720 717
            }
721 718
            r = EXCP_HALTED;
722 719
            break;
723 720
        case ICPT_CPU_STOP:
724
            if (s390_del_running_cpu(env) == 0) {
721
            if (s390_del_running_cpu(cpu) == 0) {
725 722
                qemu_system_shutdown_request();
726 723
            }
727 724
            r = EXCP_HALTED;

Also available in: Unified diff