From 40364748ddca8a510de5f345b8f7c1c49d24cd26 Mon Sep 17 00:00:00 2001 From: Dmitry Fleytman Date: Thu, 15 Sep 2016 09:14:25 +0300 Subject: e1000e: Flush receive queues on link up Signed-off-by: Dmitry Fleytman Signed-off-by: Jason Wang --- hw/net/e1000e_core.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'hw/net') diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index ea2a484..e8d50f6 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); -- cgit v1.1