[PATCH] hw/mips: Use MachineClass->default_nic in the virt machine

Philippe Mathieu-Daudé posted 1 patch 11 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230524122559.28863-1-philmd@linaro.org
Maintainers: Huacai Chen <chenhuacai@kernel.org>, Jiaxun Yang <jiaxun.yang@flygoat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>
hw/mips/loongson3_virt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] hw/mips: Use MachineClass->default_nic in the virt machine
Posted by Philippe Mathieu-Daudé 11 months, 2 weeks ago
Mark the default NIC via the new MachineClass->default_nic setting
so that the machine-defaults code in vl.c can decide whether the
default NIC is usable or not (for example when compiling with the
"--without-default-devices" configure switch).

Inspired-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
Based-on: <20230523110435.1375774-1-thuth@redhat.com>
---
 hw/mips/loongson3_virt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c
index 25534288dd..216812f660 100644
--- a/hw/mips/loongson3_virt.c
+++ b/hw/mips/loongson3_virt.c
@@ -406,6 +406,7 @@ static inline void loongson3_virt_devices_init(MachineState *machine,
     PCIBus *pci_bus;
     DeviceState *dev;
     MemoryRegion *mmio_reg, *ecam_reg;
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     LoongsonMachineState *s = LOONGSON_MACHINE(machine);
 
     dev = qdev_new(TYPE_GPEX_HOST);
@@ -456,7 +457,7 @@ static inline void loongson3_virt_devices_init(MachineState *machine,
         NICInfo *nd = &nd_table[i];
 
         if (!nd->model) {
-            nd->model = g_strdup("virtio");
+            nd->model = g_strdup(mc->default_nic);
         }
 
         pci_nic_init_nofail(nd, pci_bus, nd->model, NULL);
@@ -619,6 +620,7 @@ static void loongson3v_machine_class_init(ObjectClass *oc, void *data)
     mc->default_ram_size = 1600 * MiB;
     mc->kvm_type = mips_kvm_type;
     mc->minimum_page_bits = 14;
+    mc->default_nic = "virtio-net-pci";
 }
 
 static const TypeInfo loongson3_machine_types[] = {
-- 
2.38.1


Re: [PATCH] hw/mips: Use MachineClass->default_nic in the virt machine
Posted by Thomas Huth 11 months, 2 weeks ago
On 24/05/2023 14.25, Philippe Mathieu-Daudé wrote:
> Mark the default NIC via the new MachineClass->default_nic setting
> so that the machine-defaults code in vl.c can decide whether the
> default NIC is usable or not (for example when compiling with the
> "--without-default-devices" configure switch).
> 
> Inspired-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> Based-on: <20230523110435.1375774-1-thuth@redhat.com>
> ---
>   hw/mips/loongson3_virt.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c
> index 25534288dd..216812f660 100644
> --- a/hw/mips/loongson3_virt.c
> +++ b/hw/mips/loongson3_virt.c
> @@ -406,6 +406,7 @@ static inline void loongson3_virt_devices_init(MachineState *machine,
>       PCIBus *pci_bus;
>       DeviceState *dev;
>       MemoryRegion *mmio_reg, *ecam_reg;
> +    MachineClass *mc = MACHINE_GET_CLASS(machine);
>       LoongsonMachineState *s = LOONGSON_MACHINE(machine);
>   
>       dev = qdev_new(TYPE_GPEX_HOST);
> @@ -456,7 +457,7 @@ static inline void loongson3_virt_devices_init(MachineState *machine,
>           NICInfo *nd = &nd_table[i];
>   
>           if (!nd->model) {
> -            nd->model = g_strdup("virtio");
> +            nd->model = g_strdup(mc->default_nic);
>           }
>   
>           pci_nic_init_nofail(nd, pci_bus, nd->model, NULL);
> @@ -619,6 +620,7 @@ static void loongson3v_machine_class_init(ObjectClass *oc, void *data)
>       mc->default_ram_size = 1600 * MiB;
>       mc->kvm_type = mips_kvm_type;
>       mc->minimum_page_bits = 14;
> +    mc->default_nic = "virtio-net-pci";
>   }

Reviewed-by: Thomas Huth <thuth@redhat.com>