aboutsummaryrefslogtreecommitdiff
path: root/hw/net
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2022-03-10 17:55:50 +0100
committerJason Wang <jasowang@redhat.com>2022-05-17 16:48:23 +0800
commit052c2579b89b0d87debe8b05594b5180f0fde87d (patch)
treedc46ca7444d5c7d94ffc9d0a96c0dcc3c24ea464 /hw/net
parentfd8c8c056d17e78efdcfe680b4830cd646d5d5a0 (diff)
downloadqemu-052c2579b89b0d87debe8b05594b5180f0fde87d.zip
qemu-052c2579b89b0d87debe8b05594b5180f0fde87d.tar.gz
qemu-052c2579b89b0d87debe8b05594b5180f0fde87d.tar.bz2
tulip: Assign default MAC address if not specified
The MAC of the tulip card is stored in the EEPROM and at startup tulip_fill_eeprom() is called to initialize the EEPROM with the MAC address given on the command line, e.g.: -device tulip,mac=00:11:22:33:44:55 In case the mac address was not given on the command line, tulip_fill_eeprom() initializes the MAC in EEPROM with 00:00:00:00:00:00 which breaks e.g. a HP-UX guest. Fix this problem by moving qemu_macaddr_default_if_unset() a few lines up, so that a default mac address is assigned before tulip_fill_eeprom() initializes the EEPROM. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw/net')
-rw-r--r--hw/net/tulip.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/net/tulip.c b/hw/net/tulip.c
index d5b6cc5..097e905 100644
--- a/hw/net/tulip.c
+++ b/hw/net/tulip.c
@@ -967,6 +967,8 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
pci_conf = s->dev.config;
pci_conf[PCI_INTERRUPT_PIN] = 1; /* interrupt pin A */
+ qemu_macaddr_default_if_unset(&s->c.macaddr);
+
s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64);
tulip_fill_eeprom(s);
@@ -981,8 +983,6 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
s->irq = pci_allocate_irq(&s->dev);
- qemu_macaddr_default_if_unset(&s->c.macaddr);
-
s->nic = qemu_new_nic(&net_tulip_info, &s->c,
object_get_typename(OBJECT(pci_dev)),
pci_dev->qdev.id, s);