target/riscv/kvm-stub.c | 30 ------------------------------ target/riscv/kvm.c | 4 +--- target/riscv/meson.build | 2 +- 3 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 target/riscv/kvm-stub.c
Since we always check whether KVM is enabled before calling
kvm_riscv_reset_vcpu() and kvm_riscv_set_irq(), their call
is elided by the compiler when KVM is not available.
Therefore the stubs are not even linked. Remove them.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/riscv/kvm-stub.c | 30 ------------------------------
target/riscv/kvm.c | 4 +---
target/riscv/meson.build | 2 +-
3 files changed, 2 insertions(+), 34 deletions(-)
delete mode 100644 target/riscv/kvm-stub.c
diff --git a/target/riscv/kvm-stub.c b/target/riscv/kvm-stub.c
deleted file mode 100644
index 4e8fc31a21..0000000000
--- a/target/riscv/kvm-stub.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * QEMU KVM RISC-V specific function stubs
- *
- * Copyright (c) 2020 Huawei Technologies Co., Ltd
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2 or later, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "qemu/osdep.h"
-#include "cpu.h"
-#include "kvm_riscv.h"
-
-void kvm_riscv_reset_vcpu(RISCVCPU *cpu)
-{
- abort();
-}
-
-void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level)
-{
- abort();
-}
diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c
index 0f932a5b96..52884bbe15 100644
--- a/target/riscv/kvm.c
+++ b/target/riscv/kvm.c
@@ -503,9 +503,7 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu)
{
CPURISCVState *env = &cpu->env;
- if (!kvm_enabled()) {
- return;
- }
+ assert(kvm_enabled());
env->pc = cpu->env.kernel_addr;
env->gpr[10] = kvm_arch_vcpu_id(CPU(cpu)); /* a0 */
env->gpr[11] = cpu->env.fdt_addr; /* a1 */
diff --git a/target/riscv/meson.build b/target/riscv/meson.build
index e1ff6d9b95..37fc2cf487 100644
--- a/target/riscv/meson.build
+++ b/target/riscv/meson.build
@@ -22,7 +22,7 @@ riscv_ss.add(files(
'crypto_helper.c',
'zce_helper.c'
))
-riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
+riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'))
riscv_softmmu_ss = ss.source_set()
riscv_softmmu_ss.add(files(
--
2.38.1
On Tue, Jun 20, 2023 at 6:17 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > Since we always check whether KVM is enabled before calling > kvm_riscv_reset_vcpu() and kvm_riscv_set_irq(), their call > is elided by the compiler when KVM is not available. > Therefore the stubs are not even linked. Remove them. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/kvm-stub.c | 30 ------------------------------ > target/riscv/kvm.c | 4 +--- > target/riscv/meson.build | 2 +- > 3 files changed, 2 insertions(+), 34 deletions(-) > delete mode 100644 target/riscv/kvm-stub.c > > diff --git a/target/riscv/kvm-stub.c b/target/riscv/kvm-stub.c > deleted file mode 100644 > index 4e8fc31a21..0000000000 > --- a/target/riscv/kvm-stub.c > +++ /dev/null > @@ -1,30 +0,0 @@ > -/* > - * QEMU KVM RISC-V specific function stubs > - * > - * Copyright (c) 2020 Huawei Technologies Co., Ltd > - * > - * This program is free software; you can redistribute it and/or modify it > - * under the terms and conditions of the GNU General Public License, > - * version 2 or later, as published by the Free Software Foundation. > - * > - * This program is distributed in the hope it will be useful, but WITHOUT > - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for > - * more details. > - * > - * You should have received a copy of the GNU General Public License along with > - * this program. If not, see <http://www.gnu.org/licenses/>. > - */ > -#include "qemu/osdep.h" > -#include "cpu.h" > -#include "kvm_riscv.h" > - > -void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > -{ > - abort(); > -} > - > -void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level) > -{ > - abort(); > -} > diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c > index 0f932a5b96..52884bbe15 100644 > --- a/target/riscv/kvm.c > +++ b/target/riscv/kvm.c > @@ -503,9 +503,7 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > { > CPURISCVState *env = &cpu->env; > > - if (!kvm_enabled()) { > - return; > - } > + assert(kvm_enabled()); > env->pc = cpu->env.kernel_addr; > env->gpr[10] = kvm_arch_vcpu_id(CPU(cpu)); /* a0 */ > env->gpr[11] = cpu->env.fdt_addr; /* a1 */ > diff --git a/target/riscv/meson.build b/target/riscv/meson.build > index e1ff6d9b95..37fc2cf487 100644 > --- a/target/riscv/meson.build > +++ b/target/riscv/meson.build > @@ -22,7 +22,7 @@ riscv_ss.add(files( > 'crypto_helper.c', > 'zce_helper.c' > )) > -riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c')) > +riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c')) > > riscv_softmmu_ss = ss.source_set() > riscv_softmmu_ss.add(files( > -- > 2.38.1 > >
On 6/20/23 05:16, Philippe Mathieu-Daudé wrote: > Since we always check whether KVM is enabled before calling > kvm_riscv_reset_vcpu() and kvm_riscv_set_irq(), their call > is elided by the compiler when KVM is not available. Had to google 'elided'. Nice touch. > Therefore the stubs are not even linked. Remove them. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- Tested with a simple KVM guest. Nothing bad happened. Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Tested-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > target/riscv/kvm-stub.c | 30 ------------------------------ > target/riscv/kvm.c | 4 +--- > target/riscv/meson.build | 2 +- > 3 files changed, 2 insertions(+), 34 deletions(-) > delete mode 100644 target/riscv/kvm-stub.c > > diff --git a/target/riscv/kvm-stub.c b/target/riscv/kvm-stub.c > deleted file mode 100644 > index 4e8fc31a21..0000000000 > --- a/target/riscv/kvm-stub.c > +++ /dev/null > @@ -1,30 +0,0 @@ > -/* > - * QEMU KVM RISC-V specific function stubs > - * > - * Copyright (c) 2020 Huawei Technologies Co., Ltd > - * > - * This program is free software; you can redistribute it and/or modify it > - * under the terms and conditions of the GNU General Public License, > - * version 2 or later, as published by the Free Software Foundation. > - * > - * This program is distributed in the hope it will be useful, but WITHOUT > - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for > - * more details. > - * > - * You should have received a copy of the GNU General Public License along with > - * this program. If not, see <http://www.gnu.org/licenses/>. > - */ > -#include "qemu/osdep.h" > -#include "cpu.h" > -#include "kvm_riscv.h" > - > -void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > -{ > - abort(); > -} > - > -void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level) > -{ > - abort(); > -} > diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c > index 0f932a5b96..52884bbe15 100644 > --- a/target/riscv/kvm.c > +++ b/target/riscv/kvm.c > @@ -503,9 +503,7 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > { > CPURISCVState *env = &cpu->env; > > - if (!kvm_enabled()) { > - return; > - } > + assert(kvm_enabled()); > env->pc = cpu->env.kernel_addr; > env->gpr[10] = kvm_arch_vcpu_id(CPU(cpu)); /* a0 */ > env->gpr[11] = cpu->env.fdt_addr; /* a1 */ > diff --git a/target/riscv/meson.build b/target/riscv/meson.build > index e1ff6d9b95..37fc2cf487 100644 > --- a/target/riscv/meson.build > +++ b/target/riscv/meson.build > @@ -22,7 +22,7 @@ riscv_ss.add(files( > 'crypto_helper.c', > 'zce_helper.c' > )) > -riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c')) > +riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c')) > > riscv_softmmu_ss = ss.source_set() > riscv_softmmu_ss.add(files(
On Tue, Jun 20, 2023 at 6:17 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > Since we always check whether KVM is enabled before calling > kvm_riscv_reset_vcpu() and kvm_riscv_set_irq(), their call > is elided by the compiler when KVM is not available. > Therefore the stubs are not even linked. Remove them. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Do you mind rebasing this on https://github.com/alistair23/qemu/tree/riscv-to-apply.next? Alistair > --- > target/riscv/kvm-stub.c | 30 ------------------------------ > target/riscv/kvm.c | 4 +--- > target/riscv/meson.build | 2 +- > 3 files changed, 2 insertions(+), 34 deletions(-) > delete mode 100644 target/riscv/kvm-stub.c > > diff --git a/target/riscv/kvm-stub.c b/target/riscv/kvm-stub.c > deleted file mode 100644 > index 4e8fc31a21..0000000000 > --- a/target/riscv/kvm-stub.c > +++ /dev/null > @@ -1,30 +0,0 @@ > -/* > - * QEMU KVM RISC-V specific function stubs > - * > - * Copyright (c) 2020 Huawei Technologies Co., Ltd > - * > - * This program is free software; you can redistribute it and/or modify it > - * under the terms and conditions of the GNU General Public License, > - * version 2 or later, as published by the Free Software Foundation. > - * > - * This program is distributed in the hope it will be useful, but WITHOUT > - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for > - * more details. > - * > - * You should have received a copy of the GNU General Public License along with > - * this program. If not, see <http://www.gnu.org/licenses/>. > - */ > -#include "qemu/osdep.h" > -#include "cpu.h" > -#include "kvm_riscv.h" > - > -void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > -{ > - abort(); > -} > - > -void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level) > -{ > - abort(); > -} > diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c > index 0f932a5b96..52884bbe15 100644 > --- a/target/riscv/kvm.c > +++ b/target/riscv/kvm.c > @@ -503,9 +503,7 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > { > CPURISCVState *env = &cpu->env; > > - if (!kvm_enabled()) { > - return; > - } > + assert(kvm_enabled()); > env->pc = cpu->env.kernel_addr; > env->gpr[10] = kvm_arch_vcpu_id(CPU(cpu)); /* a0 */ > env->gpr[11] = cpu->env.fdt_addr; /* a1 */ > diff --git a/target/riscv/meson.build b/target/riscv/meson.build > index e1ff6d9b95..37fc2cf487 100644 > --- a/target/riscv/meson.build > +++ b/target/riscv/meson.build > @@ -22,7 +22,7 @@ riscv_ss.add(files( > 'crypto_helper.c', > 'zce_helper.c' > )) > -riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c')) > +riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c')) > > riscv_softmmu_ss = ss.source_set() > riscv_softmmu_ss.add(files( > -- > 2.38.1 > >
ping? On 20/6/23 10:16, Philippe Mathieu-Daudé wrote: > Since we always check whether KVM is enabled before calling > kvm_riscv_reset_vcpu() and kvm_riscv_set_irq(), their call > is elided by the compiler when KVM is not available. > Therefore the stubs are not even linked. Remove them. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > target/riscv/kvm-stub.c | 30 ------------------------------ > target/riscv/kvm.c | 4 +--- > target/riscv/meson.build | 2 +- > 3 files changed, 2 insertions(+), 34 deletions(-) > delete mode 100644 target/riscv/kvm-stub.c > > diff --git a/target/riscv/kvm-stub.c b/target/riscv/kvm-stub.c > deleted file mode 100644 > index 4e8fc31a21..0000000000 > --- a/target/riscv/kvm-stub.c > +++ /dev/null > @@ -1,30 +0,0 @@ > -/* > - * QEMU KVM RISC-V specific function stubs > - * > - * Copyright (c) 2020 Huawei Technologies Co., Ltd > - * > - * This program is free software; you can redistribute it and/or modify it > - * under the terms and conditions of the GNU General Public License, > - * version 2 or later, as published by the Free Software Foundation. > - * > - * This program is distributed in the hope it will be useful, but WITHOUT > - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for > - * more details. > - * > - * You should have received a copy of the GNU General Public License along with > - * this program. If not, see <http://www.gnu.org/licenses/>. > - */ > -#include "qemu/osdep.h" > -#include "cpu.h" > -#include "kvm_riscv.h" > - > -void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > -{ > - abort(); > -} > - > -void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level) > -{ > - abort(); > -} > diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c > index 0f932a5b96..52884bbe15 100644 > --- a/target/riscv/kvm.c > +++ b/target/riscv/kvm.c > @@ -503,9 +503,7 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu) > { > CPURISCVState *env = &cpu->env; > > - if (!kvm_enabled()) { > - return; > - } > + assert(kvm_enabled()); > env->pc = cpu->env.kernel_addr; > env->gpr[10] = kvm_arch_vcpu_id(CPU(cpu)); /* a0 */ > env->gpr[11] = cpu->env.fdt_addr; /* a1 */ > diff --git a/target/riscv/meson.build b/target/riscv/meson.build > index e1ff6d9b95..37fc2cf487 100644 > --- a/target/riscv/meson.build > +++ b/target/riscv/meson.build > @@ -22,7 +22,7 @@ riscv_ss.add(files( > 'crypto_helper.c', > 'zce_helper.c' > )) > -riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c')) > +riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c')) > > riscv_softmmu_ss = ss.source_set() > riscv_softmmu_ss.add(files(
© 2016 - 2024 Red Hat, Inc.