|
|
76d3df6 |
From c6048f849c7e3f009786df76206e895a69de032c Mon Sep 17 00:00:00 2001
|
|
|
76d3df6 |
From: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
|
|
|
76d3df6 |
Date: Mon, 21 Sep 2015 17:09:02 +0300
|
|
|
76d3df6 |
Subject: [PATCH] vmxnet3: Support reading IMR registers on bar0
|
|
|
76d3df6 |
|
|
|
76d3df6 |
Instead of asserting, return the actual IMR register value.
|
|
|
76d3df6 |
This is aligned with what's returned on ESXi.
|
|
|
76d3df6 |
|
|
|
76d3df6 |
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
|
|
|
76d3df6 |
Tested-by: Dana Rubin <dana.rubin@ravellosystems.com>
|
|
|
76d3df6 |
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
|
|
76d3df6 |
---
|
|
|
76d3df6 |
hw/net/vmxnet3.c | 6 +++++-
|
|
|
76d3df6 |
1 files changed, 5 insertions(+), 1 deletions(-)
|
|
|
76d3df6 |
|
|
|
76d3df6 |
diff --git a/tools/qemu-xen/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
|
|
|
76d3df6 |
index 48ced71..057f0dc 100644
|
|
|
76d3df6 |
--- a/tools/qemu-xen/hw/net/vmxnet3.c
|
|
|
76d3df6 |
+++ b/tools/qemu-xen/hw/net/vmxnet3.c
|
|
|
76d3df6 |
@@ -1163,9 +1163,13 @@ vmxnet3_io_bar0_write(void *opaque, hwaddr addr,
|
|
|
76d3df6 |
static uint64_t
|
|
|
76d3df6 |
vmxnet3_io_bar0_read(void *opaque, hwaddr addr, unsigned size)
|
|
|
76d3df6 |
{
|
|
|
76d3df6 |
+ VMXNET3State *s = opaque;
|
|
|
76d3df6 |
+
|
|
|
76d3df6 |
if (VMW_IS_MULTIREG_ADDR(addr, VMXNET3_REG_IMR,
|
|
|
76d3df6 |
VMXNET3_MAX_INTRS, VMXNET3_REG_ALIGN)) {
|
|
|
76d3df6 |
- g_assert_not_reached();
|
|
|
76d3df6 |
+ int l = VMW_MULTIREG_IDX_BY_ADDR(addr, VMXNET3_REG_IMR,
|
|
|
76d3df6 |
+ VMXNET3_REG_ALIGN);
|
|
|
76d3df6 |
+ return s->interrupt_states[l].is_masked;
|
|
|
76d3df6 |
}
|
|
|
76d3df6 |
|
|
|
76d3df6 |
VMW_CBPRN("BAR0 unknown read [%" PRIx64 "], size %d", addr, size);
|
|
|
76d3df6 |
--
|
|
|
76d3df6 |
1.7.0.4
|
|
|
76d3df6 |
|