summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorDmitry Fleytman <dmitry@daynix.com>2016-09-15 09:14:25 +0300
committerJason Wang <jasowang@redhat.com>2016-09-27 17:54:22 +0800
commit40364748ddca8a510de5f345b8f7c1c49d24cd26 (patch)
treef1f73b0fbc2fb30ed147a3c690e0f38cbfd09ac0 /hw
parent6ee0e20b653817aa0adac89e21704842608e1639 (diff)
downloadqemu-40364748ddca8a510de5f345b8f7c1c49d24cd26.zip
e1000e: Flush receive queues on link up
Signed-off-by: Dmitry Fleytman <dmitry@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/net/e1000e_core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
index ea2a484e9e..e8d50f65f0 100644
--- a/hw/net/e1000e_core.c
+++ b/hw/net/e1000e_core.c
@@ -1807,6 +1807,7 @@ e1000e_core_set_link_status(E1000ECore *core)
core->autoneg_timer);
} else {
e1000x_update_regs_on_link_up(core->mac, core->phy[0]);
+ e1000e_start_recv(core);
}
}
@@ -2187,6 +2188,8 @@ e1000e_autoneg_timer(void *opaque)
E1000ECore *core = opaque;
if (!qemu_get_queue(core->owner_nic)->link_down) {
e1000x_update_regs_on_autoneg_done(core->mac, core->phy[0]);
+ e1000e_start_recv(core);
+
e1000e_update_flowctl_status(core);
/* signal link status change to the guest */
e1000e_set_interrupt_cause(core, E1000_ICR_LSC);