代码拉取完成,页面将自动刷新
From d597742733befe23034a87afad7d18ee36d01ceb Mon Sep 17 00:00:00 2001
From: lixianglai <lixianglai@loongson.cn>
Date: Mon, 29 May 2023 07:49:06 -0400
Subject: [PATCH 18/28] pass to make check.
With this patch, when running make check command, qemu passes to
compile.
Signed-off-by: lixianglai <lixianglai@loongson.cn>
---
hw/loongarch/apic.c | 4 ++--
hw/loongarch/ioapic.c | 4 ++--
hw/loongarch/iocsr.c | 20 ++++++++++++++++++--
hw/loongarch/ipi.c | 4 ++--
hw/loongarch/larch_3a.c | 3 ---
target/loongarch64/machine.c | 7 +++++++
6 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/hw/loongarch/apic.c b/hw/loongarch/apic.c
index d6ba2a2ce..67994d201 100644
--- a/hw/loongarch/apic.c
+++ b/hw/loongarch/apic.c
@@ -64,7 +64,7 @@ static int ext_irq_pre_save(void *opaque)
struct kvm_loongarch_ls3a_extirq_state *kstate;
int ret, length, i, vcpuid;
#endif
- if (!kvm_irqchip_in_kernel()) {
+ if ((!kvm_enabled()) || (!kvm_irqchip_in_kernel())) {
return 0;
}
#ifdef CONFIG_KVM
@@ -112,7 +112,7 @@ static int ext_irq_post_load(void *opaque, int version)
struct kvm_loongarch_ls3a_extirq_state *kstate;
int ret, length, i, vcpuid;
#endif
- if (!kvm_irqchip_in_kernel()) {
+ if ((!kvm_enabled()) || (!kvm_irqchip_in_kernel())) {
return 0;
}
#ifdef CONFIG_KVM
diff --git a/hw/loongarch/ioapic.c b/hw/loongarch/ioapic.c
index 3de0ed88d..60abff855 100644
--- a/hw/loongarch/ioapic.c
+++ b/hw/loongarch/ioapic.c
@@ -253,7 +253,7 @@ static int kvm_ls7a_pre_save(void *opaque)
struct ls7a_ioapic_state *state;
int ret, i, length;
- if (!kvm_irqchip_in_kernel()) {
+ if ((!kvm_enabled()) || (!kvm_irqchip_in_kernel())) {
return 0;
}
@@ -297,7 +297,7 @@ static int kvm_ls7a_post_load(void *opaque, int version)
struct ls7a_ioapic_state *state;
int ret, i, length;
- if (!kvm_irqchip_in_kernel()) {
+ if ((!kvm_enabled()) || (!kvm_irqchip_in_kernel())) {
return 0;
}
length = sizeof(struct loongarch_kvm_irqchip) + sizeof(struct ls7a_ioapic_state);
diff --git a/hw/loongarch/iocsr.c b/hw/loongarch/iocsr.c
index 60daafd6e..13d356d80 100644
--- a/hw/loongarch/iocsr.c
+++ b/hw/loongarch/iocsr.c
@@ -95,6 +95,11 @@ static int kvm_iocsr_pre_save(void *opaque)
IOCSRState *s = opaque;
struct kvm_iocsr_entry entry;
int i = 0;
+
+ if ((!kvm_enabled())) {
+ return 0;
+ }
+
for (i = 0; i < IOCSR_MAX; i++) {
entry.addr = iocsr_array[i];
kvm_vm_ioctl(kvm_state, KVM_LOONGARCH_GET_IOCSR, &entry);
@@ -172,8 +177,19 @@ static void iocsr_instance_init(Object *obj)
{
IOCSRState *s = IOCSR(obj);
int i;
- LoongarchMachineState *lsms = LoongarchMACHINE(qdev_get_machine());
- LoongarchMachineClass *lsmc = LoongarchMACHINE_GET_CLASS(lsms);
+ LoongarchMachineState *lsms;
+ LoongarchMachineClass *lsmc;
+ Object *machine = qdev_get_machine();
+ ObjectClass *mc = object_get_class(machine);
+
+
+ /* 'lams' should be initialized */
+ if (!strcmp(MACHINE_CLASS(mc)->name, "none")) {
+ return;
+ }
+
+ lsms = LoongarchMACHINE(machine);
+ lsmc = LoongarchMACHINE_GET_CLASS(lsms);
init_vendor_cpuname((uint64_t *)&iocsr_init.iocsr_val[IOCSR_VENDOR],
(uint64_t *)&iocsr_init.iocsr_val[IOCSR_CPUNAME],
diff --git a/hw/loongarch/ipi.c b/hw/loongarch/ipi.c
index ade182abc..59186f1de 100644
--- a/hw/loongarch/ipi.c
+++ b/hw/loongarch/ipi.c
@@ -25,7 +25,7 @@ static int gipi_pre_save(void *opaque)
int ret, i, j, length;
#endif
- if (!kvm_irqchip_in_kernel()) {
+ if ((!kvm_enabled()) || (!kvm_irqchip_in_kernel())) {
return 0;
}
@@ -67,7 +67,7 @@ static int gipi_post_load(void *opaque, int version)
int ret, i, j, length;
#endif
- if (!kvm_irqchip_in_kernel()) {
+ if ((!kvm_enabled()) || (!kvm_irqchip_in_kernel())) {
return 0;
}
diff --git a/hw/loongarch/larch_3a.c b/hw/loongarch/larch_3a.c
index 6eaa53d74..f83bd3750 100644
--- a/hw/loongarch/larch_3a.c
+++ b/hw/loongarch/larch_3a.c
@@ -1435,9 +1435,6 @@ static void ls3a5k_bios_init(LoongarchMachineState *lsms,
if (kernel_filename) {
lsms->reset_info[0]->vector = load_kernel();
- } else {
- error_report("Please specify at lease one of -bios and -kernel");
- exit(1);
}
}
}
diff --git a/target/loongarch64/machine.c b/target/loongarch64/machine.c
index b69bca6a9..dea6a7034 100644
--- a/target/loongarch64/machine.c
+++ b/target/loongarch64/machine.c
@@ -15,6 +15,10 @@ static int cpu_post_load(void *opaque, int version_id)
CPULOONGARCHState *env = &cpu->env;
int r = 0;
+ if (!kvm_enabled()) {
+ return 0;
+ }
+
#ifdef CONFIG_KVM
struct kvm_loongarch_vcpu_state vcpu_state;
int i;
@@ -48,6 +52,9 @@ static int cpu_pre_save(void *opaque)
LOONGARCHCPU *cpu = opaque;
struct kvm_loongarch_vcpu_state vcpu_state;
int i, r = 0;
+ if (!kvm_enabled()) {
+ return 0;
+ }
r = kvm_vcpu_ioctl(CPU(cpu), KVM_LARCH_GET_VCPU_STATE, &vcpu_state);
if (r < 0) {
--
2.43.5
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。