aboutsummaryrefslogtreecommitdiff
path: root/hw/net/e1000.c
diff options
context:
space:
mode:
authorGabriel L. Somlo <gsomlo@gmail.com>2014-06-19 11:55:36 -0400
committerMichael S. Tsirkin <mst@redhat.com>2014-06-23 17:38:00 +0300
commit39bb8ee737595e9b264d075dfcd7d86f4d3f1133 (patch)
tree6efd2fc27d8c1ffedaa14d9af56be830651b78cb /hw/net/e1000.c
parent6883b5914029fa8ffc42a43d2a2188493c27fd58 (diff)
e1000: signal guest on successful link auto-negotiation
Generate a link status change interrupt once link auto-netotiation is successfully completed. This does not affect Linux and Windows (XP and 7 tested) in any way, but is needed by the stock OS X driver (AppleIntel8254XEthernet.kext), which would otherwise fail to notice the link status change event. Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Alexander Graf <agraf@suse.de> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/net/e1000.c')
-rw-r--r--hw/net/e1000.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index d6ef802ce9..d20f8c8ff2 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -213,6 +213,7 @@ e1000_autoneg_timer(void *opaque)
s->phy_reg[PHY_LP_ABILITY] |= MII_LPAR_LPACK;
s->phy_reg[PHY_STATUS] |= MII_SR_AUTONEG_COMPLETE;
DBGOUT(PHY, "Auto negotiation is completed\n");
+ set_ics(s, 0, E1000_ICS_LSC); /* signal link status change to guest */
}
}