]> git.proxmox.com Git - qemu.git/commitdiff
net/e1000: update network information when macaddr is changed in guest
authorAmos Kong <akong@redhat.com>
Thu, 17 Oct 2013 07:02:49 +0000 (15:02 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Fri, 18 Oct 2013 11:28:09 +0000 (13:28 +0200)
If we change macaddr in guest by 'ifconfig eth0 hw ether 12:12:12:34:35:36',
the mac register of e1000 is already updated, but we don't update
network information in qemu. Therefor, the information in monitor
is wrong.

This patch updates nic info when the second part of macaddr is written.

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
hw/net/e1000.c

index 9a1c46e8caebb297b927da56735e8f08d589f74c..70a59fde7ff06be945780f81a330825f641cb00f 100644 (file)
@@ -1106,7 +1106,15 @@ mac_read_clr8(E1000State *s, int index)
 static void
 mac_writereg(E1000State *s, int index, uint32_t val)
 {
+    uint32_t macaddr[2];
+
     s->mac_reg[index] = val;
+
+    if (index == RA + 1) {
+        macaddr[0] = cpu_to_le32(s->mac_reg[RA]);
+        macaddr[1] = cpu_to_le32(s->mac_reg[RA + 1]);
+        qemu_format_nic_info_str(qemu_get_queue(s->nic), (uint8_t *)macaddr);
+    }
 }
 
 static void