[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uin
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's |
Date: |
Mon, 13 Mar 2017 21:20:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 06/03/2017 06:25, Jason Wang wrote:
> From: "Dr. David Alan Gilbert" <address@hidden>
>
> The index's in the Vmxnet3Ring were migrated as 32bit ints
> yet are declared as size_t's. They appear to be derived
> from 32bit values loaded from guest memory, so actually
> store them as that.
>
> Signed-off-by: Dr. David Alan Gilbert <address@hidden>
> Acked-by: Dmitry Fleytman <address@hidden>
> Signed-off-by: Jason Wang <address@hidden>
> ---
> hw/net/vmxnet3.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
> index e13a798..224c109 100644
> --- a/hw/net/vmxnet3.c
> +++ b/hw/net/vmxnet3.c
> @@ -141,17 +141,17 @@ typedef struct VMXNET3Class {
> /* Cyclic ring abstraction */
> typedef struct {
> hwaddr pa;
> - size_t size;
> - size_t cell_size;
> - size_t next;
> + uint32_t size;
> + uint32_t cell_size;
> + uint32_t next;
> uint8_t gen;
> } Vmxnet3Ring;
>
> static inline void vmxnet3_ring_init(PCIDevice *d,
> Vmxnet3Ring *ring,
> hwaddr pa,
> - size_t size,
> - size_t cell_size,
> + uint32_t size,
> + uint32_t cell_size,
> bool zero_region)
> {
> ring->pa = pa;
> @@ -166,7 +166,7 @@ static inline void vmxnet3_ring_init(PCIDevice *d,
> }
>
> #define VMXNET3_RING_DUMP(macro, ring_name, ridx, r)
> \
> - macro("%s#%d: base %" PRIx64 " size %zu cell_size %zu gen %d next %zu",
> \
> + macro("%s#%d: base %" PRIx64 " size %u cell_size %u gen %d next %u", \
> (ring_name), (ridx),
> \
> (r)->pa, (r)->size, (r)->cell_size, (r)->gen, (r)->next)
>
>
David, with '-dump-vmstate' with 2.8 machine type and with v2.8 and
master I can see the size of "txq_descr" and "rxq_descr" changes because
of "sizeof(Vmxnet3TxqDescr)" and "sizeof(Vmxnet3RxqDescr)". This changes
because the size of Vmxnet3Ring has changed with the s/size_t/uint32_t/":
{
"field": "txq_descr",
"version_id": 0,
"field_exists": false,
"size": 176
},
{
"field": "rxq_descr",
"version_id": 0,
"field_exists": false,
"size": 216
},
becomes:
{
"field": "txq_descr",
"version_id": 0,
"field_exists": false,
"size": 144
},
{
"field": "rxq_descr",
"version_id": 0,
"field_exists": false,
"size": 168
},
And if I try a migration, I have:
qemu/migration/vmstate.c:112: vmstate_load_state: Assertion `first_elem
|| !n_elems' failed.
Laurent
- [Qemu-devel] [PULL RESEND 04/19] NetRxPkt: Do not try to pull more data than present, (continued)
- [Qemu-devel] [PULL RESEND 04/19] NetRxPkt: Do not try to pull more data than present, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 03/19] NetRxPkt: Fix memory corruption on VLAN header stripping, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 05/19] NetRxPkt: Account buffer with ETH header in IOV length, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 06/19] NetRxPkt: Remove code duplication in net_rx_pkt_pull_data(), Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 07/19] colo-compare: use g_timeout_source_new() to process the stale packets, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 08/19] colo-compare: kick compare thread to exit after some cleanup in finalization, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 09/19] char: remove the right fd been watched in qemu_chr_fe_set_handlers(), Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 10/19] colo-compare: Fix removing fds been watched incorrectly in finalization, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 11/19] net/colo-compare: Fix memory free error, Jason Wang, 2017/03/06
- [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Jason Wang, 2017/03/06
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's,
Laurent Vivier <=
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Dr. David Alan Gilbert, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Laurent Vivier, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Dr. David Alan Gilbert, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Laurent Vivier, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Dr. David Alan Gilbert, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Laurent Vivier, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Dr. David Alan Gilbert, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Dr. David Alan Gilbert, 2017/03/14
- Re: [Qemu-devel] [PULL RESEND 12/19] vmxnet3: Convert ring values to uint32_t's, Laurent Vivier, 2017/03/14
[Qemu-devel] [PULL RESEND 14/19] net/colo: fix memory double free error, Jason Wang, 2017/03/06