aboutsummaryrefslogtreecommitdiff
path: root/hw/net/lasi_i82596.c
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw@amazon.co.uk>2023-10-23 09:37:50 +0100
committerDavid Woodhouse <dwmw@amazon.co.uk>2024-02-02 16:23:47 +0000
commit2a98878ff40131ae5d12d92e8bce05caef6a4c8d (patch)
treef69c29023a290aced4e3002148d8ebf54de9e993 /hw/net/lasi_i82596.c
parent960036440942f32644f6070d9a0fffcef7196aca (diff)
hw/net/lasi_i82596: use qemu_create_nic_device()
Create the device only if there is a corresponding NIC config for it. Remove the explicit check on nd_table[0].used from hw/hppa/machine.c which (since commit d8a3220005d7) tries to do the same thing. The lasi_82596 support has been disabled since it was first introduced, since enable_lasi_lan() has always been zero. This allows the user to enable it by explicitly requesting a NIC model 'lasi_82596' or just using the alias 'lasi'. Otherwise, it defaults to a PCI NIC as before. Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Reviewed-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'hw/net/lasi_i82596.c')
-rw-r--r--hw/net/lasi_i82596.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/hw/net/lasi_i82596.c b/hw/net/lasi_i82596.c
index 09e830ba5f..fcf7fae941 100644
--- a/hw/net/lasi_i82596.c
+++ b/hw/net/lasi_i82596.c
@@ -118,19 +118,21 @@ static void lasi_82596_realize(DeviceState *dev, Error **errp)
i82596_common_init(dev, s, &net_lasi_82596_info);
}
-SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space,
- hwaddr hpa, qemu_irq lan_irq)
+SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space, hwaddr hpa,
+ qemu_irq lan_irq, gboolean match_default)
{
DeviceState *dev;
SysBusI82596State *s;
static const MACAddr HP_MAC = {
.a = { 0x08, 0x00, 0x09, 0xef, 0x34, 0xf6 } };
- qemu_check_nic_model(&nd_table[0], TYPE_LASI_82596);
- dev = qdev_new(TYPE_LASI_82596);
+ dev = qemu_create_nic_device(TYPE_LASI_82596, match_default, "lasi");
+ if (!dev) {
+ return NULL;
+ }
+
s = SYSBUS_I82596(dev);
s->state.irq = lan_irq;
- qdev_set_nic_properties(dev, &nd_table[0]);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
s->state.conf.macaddr = HP_MAC; /* set HP MAC prefix */