[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 08/15] BACKPORT: Register reset functions for e1000
From: |
Glauber Costa |
Subject: |
[Qemu-devel] [PATCH 08/15] BACKPORT: Register reset functions for e1000 and rtl8139 |
Date: |
Wed, 17 Jun 2009 13:09:57 -0400 |
From: Blue Swirl <address@hidden>
Signed-off-by: Blue Swirl <address@hidden>
Signed-off-by: Glauber Costa <address@hidden>
---
hw/e1000.c | 21 ++++++++++++++-------
hw/rtl8139.c | 4 +++-
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/hw/e1000.c b/hw/e1000.c
index 8c1741f..ba766e0 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -1058,6 +1058,18 @@ pci_e1000_uninit(PCIDevice *dev)
return 0;
}
+static void e1000_reset(void *opaque)
+{
+ E1000State *d = opaque;
+
+ memset(d->phy_reg, 0, sizeof d->phy_reg);
+ memmove(d->phy_reg, phy_reg_init, sizeof phy_reg_init);
+ memset(d->mac_reg, 0, sizeof d->mac_reg);
+ memmove(d->mac_reg, mac_reg_init, sizeof mac_reg_init);
+ d->rxbuf_min_shift = 1;
+ memset(&d->tx, 0, sizeof d->tx);
+}
+
PCIDevice *
pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn)
{
@@ -1103,13 +1115,6 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn)
checksum = (uint16_t) EEPROM_SUM - checksum;
d->eeprom_data[EEPROM_CHECKSUM_REG] = checksum;
- memset(d->phy_reg, 0, sizeof d->phy_reg);
- memmove(d->phy_reg, phy_reg_init, sizeof phy_reg_init);
- memset(d->mac_reg, 0, sizeof d->mac_reg);
- memmove(d->mac_reg, mac_reg_init, sizeof mac_reg_init);
- d->rxbuf_min_shift = 1;
- memset(&d->tx, 0, sizeof d->tx);
-
d->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
e1000_receive, e1000_can_receive,
e1000_cleanup, d);
@@ -1119,6 +1124,8 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn)
register_savevm(info_str, -1, 2, nic_save, nic_load, d);
d->dev.unregister = pci_e1000_uninit;
+ qemu_register_reset(e1000_reset, d);
+ e1000_reset(d);
return (PCIDevice *)d;
}
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index 19c7623..42899a5 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -1170,8 +1170,9 @@ static void rtl8139_reset_rxring(RTL8139State *s,
uint32_t bufferSize)
s->RxBufAddr = 0;
}
-static void rtl8139_reset(RTL8139State *s)
+static void rtl8139_reset(void *opaque)
{
+ RTL8139State *s = opaque;
int i;
/* restore MAC address */
@@ -3480,6 +3481,7 @@ PCIDevice *pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int
devfn)
s->pci_dev = (PCIDevice *)d;
memcpy(s->macaddr, nd->macaddr, 6);
+ qemu_register_reset(rtl8139_reset, s);
rtl8139_reset(s);
s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
rtl8139_receive, rtl8139_can_receive,
--
1.6.2.2
- [Qemu-devel] [GIT PULL 00/15] Stable branch update 2009-06-17, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 01/15] net: Fix -net socket, listen (Jan Kiszka), Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 02/15] Minimal ethernet frame length is 64 bytes., Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 03/15] Don't send all gratuitous packets at once., Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 04/15] serial: fix lost character after sysrq, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 05/15] e1000: Ignore reset command, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 06/15] VNC: Fix memory allocation (wrong structure size)., Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 07/15] fix raw_pread_aligned return value, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 08/15] BACKPORT: Register reset functions for e1000 and rtl8139,
Glauber Costa <=
- [Qemu-devel] [PATCH 09/15] BACKPORT: Update irqs on reset and device load, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 10/15] BACKPORT: Add rtc reset function., Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 11/15] fix qemu_aio_flush, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 12/15] QEMU KVM: i386: Fix the cpu reset state, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 13/15] kvm: Fix IRQ injection into full queue, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 14/15] Prevent CD-ROM media eject while device is locked, Glauber Costa, 2009/06/17
- [Qemu-devel] [PATCH 15/15] Fix vga_screen_dump_blank() PPM generation, Glauber Costa, 2009/06/17
- [Qemu-devel] Re: [PATCH 09/15] BACKPORT: Update irqs on reset and device load, Blue Swirl, 2009/06/17
- [Qemu-devel] Re: [PATCH 09/15] BACKPORT: Update irqs on reset and device load, Glauber Costa, 2009/06/17
Re: [Qemu-devel] [GIT PULL 00/15] Stable branch update 2009-06-17, Anthony Liguori, 2009/06/17