Commit 290adf38 authored by Andreas Färber's avatar Andreas Färber
Browse files

kvm: Pass CPUState to kvm_on_sigbus_vcpu()



Since commit 20d695a9 (kvm: Pass
CPUState to kvm_arch_*) CPUArchState is no longer needed.

Allows to change qemu_kvm_eat_signals() argument as well.

Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
Reviewed-by: default avatarGleb Natapov <gleb@redhat.com>
parent c03c520d
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -517,7 +517,7 @@ static void qemu_init_sigbus(void)
    prctl(PR_MCE_KILL, PR_MCE_KILL_SET, PR_MCE_KILL_EARLY, 0, 0);
}

static void qemu_kvm_eat_signals(CPUArchState *env)
static void qemu_kvm_eat_signals(CPUState *cpu)
{
    struct timespec ts = { 0, 0 };
    siginfo_t siginfo;
@@ -538,7 +538,7 @@ static void qemu_kvm_eat_signals(CPUArchState *env)

        switch (r) {
        case SIGBUS:
            if (kvm_on_sigbus_vcpu(env, siginfo.si_code, siginfo.si_addr)) {
            if (kvm_on_sigbus_vcpu(cpu, siginfo.si_code, siginfo.si_addr)) {
                sigbus_reraise();
            }
            break;
@@ -560,7 +560,7 @@ static void qemu_init_sigbus(void)
{
}

static void qemu_kvm_eat_signals(CPUArchState *env)
static void qemu_kvm_eat_signals(CPUState *cpu)
{
}
#endif /* !CONFIG_LINUX */
@@ -727,7 +727,7 @@ static void qemu_kvm_wait_io_event(CPUArchState *env)
        qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex);
    }

    qemu_kvm_eat_signals(env);
    qemu_kvm_eat_signals(cpu);
    qemu_wait_io_event_common(cpu);
}

+1 −1
Original line number Diff line number Diff line
@@ -159,7 +159,7 @@ int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_trap);
int kvm_set_signal_mask(CPUArchState *env, const sigset_t *sigset);
#endif

int kvm_on_sigbus_vcpu(CPUArchState *env, int code, void *addr);
int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr);
int kvm_on_sigbus(int code, void *addr);

/* internal API */
+1 −2
Original line number Diff line number Diff line
@@ -2026,9 +2026,8 @@ int kvm_set_ioeventfd_pio_word(int fd, uint16_t addr, uint16_t val, bool assign)
    return 0;
}

int kvm_on_sigbus_vcpu(CPUArchState *env, int code, void *addr)
int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr)
{
    CPUState *cpu = ENV_GET_CPU(env);
    return kvm_arch_on_sigbus_vcpu(cpu, code, addr);
}

+1 −1
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ int kvm_set_ioeventfd_mmio(int fd, uint32_t adr, uint32_t val, bool assign, uint
    return -ENOSYS;
}

int kvm_on_sigbus_vcpu(CPUArchState *env, int code, void *addr)
int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr)
{
    return 1;
}