diff mbox series

[v3,12/46] hw/mips/fuloong2e: use pci_init_nic_devices()

Message ID 20240108204909.564514-13-dwmw2@infradead.org (mailing list archive)
State Superseded
Headers show
Series Rework matching of network devices to -nic options | expand

Commit Message

David Woodhouse Jan. 8, 2024, 8:26 p.m. UTC
From: David Woodhouse <dwmw@amazon.co.uk>

The previous behaviour was: *if* the first NIC specified on the command
line was an RTL8139 (or unspecified model) then it gets assigned to PCI
slot 7, which is where the Fuloong board had an RTL8139. All other
devices (including the first, if it was specified a anything other then
an rtl8319) get dynamically assigned on the bus.

The new behaviour is subtly different: If the first NIC was given a
specific model *other* than rtl8139, and a subsequent NIC was not,
then the rtl8139 (or unspecified) NIC will go to slot 7 and the rest
will be dynamically assigned.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 hw/mips/fuloong2e.c | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

Comments

Thomas Huth Jan. 26, 2024, 1:53 p.m. UTC | #1
On 08/01/2024 21.26, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
> 
> The previous behaviour was: *if* the first NIC specified on the command
> line was an RTL8139 (or unspecified model) then it gets assigned to PCI
> slot 7, which is where the Fuloong board had an RTL8139. All other
> devices (including the first, if it was specified a anything other then
> an rtl8319) get dynamically assigned on the bus.
> 
> The new behaviour is subtly different: If the first NIC was given a
> specific model *other* than rtl8139, and a subsequent NIC was not,
> then the rtl8139 (or unspecified) NIC will go to slot 7 and the rest
> will be dynamically assigned.

Sounds fine for me ... Philippe, what do you think?

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


> 
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
>   hw/mips/fuloong2e.c | 16 +++-------------
>   1 file changed, 3 insertions(+), 13 deletions(-)
> 
> diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
> index 97b2c8ed8e..a45aac368c 100644
> --- a/hw/mips/fuloong2e.c
> +++ b/hw/mips/fuloong2e.c
> @@ -201,19 +201,9 @@ static void main_cpu_reset(void *opaque)
>   /* Network support */
>   static void network_init(PCIBus *pci_bus)
>   {
> -    int i;
> -
> -    for (i = 0; i < nb_nics; i++) {
> -        NICInfo *nd = &nd_table[i];
> -        const char *default_devaddr = NULL;
> -
> -        if (i == 0 && (!nd->model || strcmp(nd->model, "rtl8139") == 0)) {
> -            /* The Fuloong board has a RTL8139 card using PCI SLOT 7 */
> -            default_devaddr = "07";
> -        }
> -
> -        pci_nic_init_nofail(nd, pci_bus, "rtl8139", default_devaddr);
> -    }
> +    /* The Fuloong board has a RTL8139 card using PCI SLOT 7 */
> +    pci_init_nic_in_slot(pci_bus, "rtl8139", NULL, "07");
> +    pci_init_nic_devices(pci_bus, "rtl8139");
>   }
>   
>   static void mips_fuloong2e_init(MachineState *machine)
diff mbox series

Patch

diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
index 97b2c8ed8e..a45aac368c 100644
--- a/hw/mips/fuloong2e.c
+++ b/hw/mips/fuloong2e.c
@@ -201,19 +201,9 @@  static void main_cpu_reset(void *opaque)
 /* Network support */
 static void network_init(PCIBus *pci_bus)
 {
-    int i;
-
-    for (i = 0; i < nb_nics; i++) {
-        NICInfo *nd = &nd_table[i];
-        const char *default_devaddr = NULL;
-
-        if (i == 0 && (!nd->model || strcmp(nd->model, "rtl8139") == 0)) {
-            /* The Fuloong board has a RTL8139 card using PCI SLOT 7 */
-            default_devaddr = "07";
-        }
-
-        pci_nic_init_nofail(nd, pci_bus, "rtl8139", default_devaddr);
-    }
+    /* The Fuloong board has a RTL8139 card using PCI SLOT 7 */
+    pci_init_nic_in_slot(pci_bus, "rtl8139", NULL, "07");
+    pci_init_nic_devices(pci_bus, "rtl8139");
 }
 
 static void mips_fuloong2e_init(MachineState *machine)