diff mbox series

[06/10] hw/net/e1000: Remove unused E1000_FLAG_TSO flag

Message ID 20250501230129.2596-7-philmd@linaro.org
State New
Headers show
Series hw/core: Remove hw_compat[] array for 2.10, 2.11 and 2.12 machines | expand

Commit Message

Philippe Mathieu-Daudé May 1, 2025, 11:01 p.m. UTC
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é <philmd@linaro.org>
---
Is it OK to remove migration subsection like that?
---
 hw/net/e1000.c | 58 +++++++-------------------------------------------
 1 file changed, 8 insertions(+), 50 deletions(-)
diff mbox series

Patch

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),
 };