E1000_FLAG_TSO was only used by the hw_compat_2_11[] array, via the 'migrate_tso_props=off' property. We removed all machines using that array, lets remove all the code around E1000_FLAG_TSO, including the vmstate_e1000_tx_tso_state subsection.
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- Is it OK to remove migration subsection like that? --- hw/net/e1000.c | 58 +++++++------------------------------------------- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/hw/net/e1000.c b/hw/net/e1000.c index e0310aef872..c68645684b6 100644 --- a/hw/net/e1000.c +++ b/hw/net/e1000.c @@ -127,13 +127,10 @@ struct E1000State_st { QEMUTimer *flush_queue_timer; /* Compatibility flags for migration to/from qemu 1.3.0 and older */ -#define E1000_FLAG_TSO_BIT 3 #define E1000_FLAG_VET_BIT 4 -#define E1000_FLAG_TSO (1 << E1000_FLAG_TSO_BIT) #define E1000_FLAG_VET (1 << E1000_FLAG_VET_BIT) uint32_t compat_flags; - bool received_tx_tso; bool use_tso_for_migration; e1000x_txd_props mig_props; }; @@ -1331,7 +1328,7 @@ static int e1000_pre_save(void *opaque) } /* Decide which set of props to migrate in the main structure */ - if (chkflag(TSO) || !s->use_tso_for_migration) { + if (!s->use_tso_for_migration) { /* Either we're migrating with the extra subsection, in which * case the mig_props is always 'props' OR * we've not got the subsection, but 'props' was the last @@ -1368,30 +1365,16 @@ static int e1000_post_load(void *opaque, int version_id) } s->tx.props = s->mig_props; - if (!s->received_tx_tso) { - /* We received only one set of offload data (tx.props) - * and haven't got tx.tso_props. The best we can do - * is dupe the data. - */ - s->tx.tso_props = s->mig_props; - } + + /* We received only one set of offload data (tx.props) + * and haven't got tx.tso_props. The best we can do + * is dupe the data. + */ + s->tx.tso_props = s->mig_props; + return 0; } -static int e1000_tx_tso_post_load(void *opaque, int version_id) -{ - E1000State *s = opaque; - s->received_tx_tso = true; - return 0; -} - -static bool e1000_tso_state_needed(void *opaque) -{ - E1000State *s = opaque; - - return chkflag(TSO); -} - static const VMStateDescription vmstate_e1000_mit_state = { .name = "e1000/mit_state", .version_id = 1, @@ -1416,28 +1399,6 @@ static const VMStateDescription vmstate_e1000_full_mac_state = { } }; -static const VMStateDescription vmstate_e1000_tx_tso_state = { - .name = "e1000/tx_tso_state", - .version_id = 1, - .minimum_version_id = 1, - .needed = e1000_tso_state_needed, - .post_load = e1000_tx_tso_post_load, - .fields = (const VMStateField[]) { - VMSTATE_UINT8(tx.tso_props.ipcss, E1000State), - VMSTATE_UINT8(tx.tso_props.ipcso, E1000State), - VMSTATE_UINT16(tx.tso_props.ipcse, E1000State), - VMSTATE_UINT8(tx.tso_props.tucss, E1000State), - VMSTATE_UINT8(tx.tso_props.tucso, E1000State), - VMSTATE_UINT16(tx.tso_props.tucse, E1000State), - VMSTATE_UINT32(tx.tso_props.paylen, E1000State), - VMSTATE_UINT8(tx.tso_props.hdr_len, E1000State), - VMSTATE_UINT16(tx.tso_props.mss, E1000State), - VMSTATE_INT8(tx.tso_props.ip, E1000State), - VMSTATE_INT8(tx.tso_props.tcp, E1000State), - VMSTATE_END_OF_LIST() - } -}; - static const VMStateDescription vmstate_e1000 = { .name = "e1000", .version_id = 2, @@ -1519,7 +1480,6 @@ static const VMStateDescription vmstate_e1000 = { .subsections = (const VMStateDescription * const []) { &vmstate_e1000_mit_state, &vmstate_e1000_full_mac_state, - &vmstate_e1000_tx_tso_state, NULL } }; @@ -1637,8 +1597,6 @@ static void pci_e1000_realize(PCIDevice *pci_dev, Error **errp) static const Property e1000_properties[] = { DEFINE_NIC_PROPERTIES(E1000State, conf), - DEFINE_PROP_BIT("migrate_tso_props", E1000State, - compat_flags, E1000_FLAG_TSO_BIT, true), DEFINE_PROP_BIT("init-vet", E1000State, compat_flags, E1000_FLAG_VET_BIT, true), }; -- 2.47.1