Index: qemu/hw/sun4m.c =================================================================== --- qemu.orig/hw/sun4m.c 2007-05-19 18:36:33.000000000 +0000 +++ qemu/hw/sun4m.c 2007-05-19 18:40:39.000000000 +0000 @@ -304,15 +304,13 @@ } tcx_init(ds, hwdef->tcx_base, phys_ram_base + ram_size, ram_size, hwdef->vram_size, graphic_width, graphic_height, graphic_depth); - if (nd_table[0].vlan) { - if (nd_table[0].model == NULL - || strcmp(nd_table[0].model, "lance") == 0) { - main_lance = lance_init(&nd_table[0], hwdef->le_base, dma, - slavio_irq[hwdef->le_irq]); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } + if (nd_table[0].model == NULL + || strcmp(nd_table[0].model, "lance") == 0) { + main_lance = lance_init(&nd_table[0], hwdef->le_base, dma, + slavio_irq[hwdef->le_irq]); + } else { + fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); + exit (1); } nvram = m48t59_init(slavio_irq[0], hwdef->nvram_base, 0, hwdef->nvram_size, 8); Index: qemu/hw/pcnet.c =================================================================== --- qemu.orig/hw/pcnet.c 2007-05-19 18:37:57.000000000 +0000 +++ qemu/hw/pcnet.c 2007-05-19 18:50:52.000000000 +0000 @@ -1267,7 +1267,8 @@ if (CSR_LOOP(s)) pcnet_receive(s, s->buffer, s->xmit_pos); else - qemu_send_packet(s->vc, s->buffer, s->xmit_pos); + if (s->vc) + qemu_send_packet(s->vc, s->buffer, s->xmit_pos); s->csr[0] &= ~0x0008; /* clear TDMD */ s->csr[4] |= 0x0004; /* set TXSTRT */ @@ -1562,7 +1563,8 @@ /* Initialize the PROM */ - memcpy(s->prom, s->nd->macaddr, 6); + if (s->nd) + memcpy(s->prom, s->nd->macaddr, 6); s->prom[12] = s->prom[13] = 0x00; s->prom[14] = s->prom[15] = 0x57; @@ -1898,18 +1900,21 @@ d->nd = nd; - d->vc = qemu_new_vlan_client(nd->vlan, pcnet_receive, - pcnet_can_receive, d); - - snprintf(d->vc->info_str, sizeof(d->vc->info_str), - "pcnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", - d->nd->macaddr[0], - d->nd->macaddr[1], - d->nd->macaddr[2], - d->nd->macaddr[3], - d->nd->macaddr[4], - d->nd->macaddr[5]); - + if (nd && nd->vlan) { + d->vc = qemu_new_vlan_client(nd->vlan, pcnet_receive, + pcnet_can_receive, d); + + snprintf(d->vc->info_str, sizeof(d->vc->info_str), + "pcnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", + d->nd->macaddr[0], + d->nd->macaddr[1], + d->nd->macaddr[2], + d->nd->macaddr[3], + d->nd->macaddr[4], + d->nd->macaddr[5]); + } else { + d->vc = NULL; + } pcnet_h_reset(d); register_savevm("pcnet", 0, 2, pcnet_save, pcnet_load, d); }