Message ID | YiotlroslM5hcR04@p100 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tulip: Assign default MAC address if not specified | expand |
On 10/3/22 17:55, Helge Deller wrote: > 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> > diff --git a/hw/net/tulip.c b/hw/net/tulip.c > index d5b6cc5ee6..097e905bec 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); >
Hi Jason, Do you mind taking this single patch via your networking tree? Otherwise I Cc'ed qemu-trivial :) Thanks! On Thu, Mar 10, 2022 at 5:56 PM Helge Deller <deller@gmx.de> wrote: > > 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> > > diff --git a/hw/net/tulip.c b/hw/net/tulip.c > index d5b6cc5ee6..097e905bec 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); >
On Wed, May 11, 2022 at 5:41 PM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > > Hi Jason, > > Do you mind taking this single patch via your networking tree? > Otherwise I Cc'ed qemu-trivial :) I've queued this. Thanks > > Thanks! > > On Thu, Mar 10, 2022 at 5:56 PM Helge Deller <deller@gmx.de> wrote: > > > > 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> > > > > diff --git a/hw/net/tulip.c b/hw/net/tulip.c > > index d5b6cc5ee6..097e905bec 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); > > >
diff --git a/hw/net/tulip.c b/hw/net/tulip.c index d5b6cc5ee6..097e905bec 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);
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>