From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Vlad Yasevich <vyasevic@redhat.com>, Amos Kong <akong@redhat.com>
Subject: [Qemu-devel] [PULL for-1.7 5/5] Revert "e1000/rtl8139: update HMP NIC when every bit is written"
Date: Thu, 21 Nov 2013 17:14:36 +0200 [thread overview]
Message-ID: <1385046834-11929-6-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1385046834-11929-1-git-send-email-mst@redhat.com>
This reverts commit cd5be5829c1ce87aa6b3a7806524fac07ac9a757.
Digging into hardware specs shows this does not
actually make QEMU behave more like hardware:
There are valid arguments backed by the spec to indicate why the version
of e1000 prior to cd5be582 was more correct: the high byte actually
includes a valid bit, this is why all guests write it last.
For rtl8139 there's actually a separate undocumented valid bit, but we
don't implement it yet.
To summarize all the drivers we know about behave in one way
that allows us to make an assumption about write order and avoid
spurious, incorrect mac address updates to the monitor.
Let's stick to the tried heuristic for 1.7 and
possibly revisit for 1.8.
Reported-by: Vlad Yasevich <vyasevic@redhat.com>
Reviewed-by: Vlad Yasevich <vyasevic@redhat.com>
Cc: Amos Kong <akong@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/net/e1000.c | 2 +-
hw/net/rtl8139.c | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index ae63591..8387443 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -1106,7 +1106,7 @@ mac_writereg(E1000State *s, int index, uint32_t val)
s->mac_reg[index] = val;
- if (index == RA || index == RA + 1) {
+ 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);
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index 7f2b4db..5329f44 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -2741,7 +2741,10 @@ static void rtl8139_io_writeb(void *opaque, uint8_t addr, uint32_t val)
switch (addr)
{
- case MAC0 ... MAC0+5:
+ case MAC0 ... MAC0+4:
+ s->phys[addr - MAC0] = val;
+ break;
+ case MAC0+5:
s->phys[addr - MAC0] = val;
qemu_format_nic_info_str(qemu_get_queue(s->nic), s->phys);
break;
--
MST
next prev parent reply other threads:[~2013-11-21 15:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-21 15:14 [Qemu-devel] [PULL for-1.7 0/5] pc very last minute fixes for 1.7 Michael S. Tsirkin
2013-11-21 15:14 ` [Qemu-devel] [PULL for-1.7 1/5] s390x: fix flat file load on 32 bit systems Michael S. Tsirkin
2013-11-21 15:14 ` [Qemu-devel] [PULL for-1.7 2/5] pci: unregister vmstate_pcibus on unplug Michael S. Tsirkin
2013-11-21 15:14 ` [Qemu-devel] [PULL for-1.7 3/5] acpi-build: fix build on glib < 2.22 Michael S. Tsirkin
2013-11-21 15:14 ` [Qemu-devel] [PULL for-1.7 4/5] acpi-build: fix build on glib < 2.14 Michael S. Tsirkin
2013-11-21 15:14 ` Michael S. Tsirkin [this message]
2013-11-23 1:52 ` [Qemu-devel] [PULL for-1.7 5/5] Revert "e1000/rtl8139: update HMP NIC when every bit is written" Amos Kong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1385046834-11929-6-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=akong@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=vyasevic@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).