e1000: Introducing backward compatibility command line parameter
authorLeonid Bloch <leonid.bloch@ravellosystems.com>
Wed, 11 Nov 2015 13:52:47 +0000 (15:52 +0200)
committerJason Wang <jasowang@redhat.com>
Thu, 12 Nov 2015 07:26:54 +0000 (15:26 +0800)
This follows the previous patches, where support for migrating the
entire MAC registers' array, and some new MAC registers were introduced.

This patch introduces the e1000-specific boolean parameter
"extra_mac_registers", which is on by default. Setting it to off will
enable migration to older versions of QEMU, but will disable the read
and write access to the new registers, that were introduced since adding
the ability to migrate the entire MAC array.

Example for usage to enable backward compatibility and to disable the
new MAC registers:

    qemu-system-x86_64 -device e1000,extra_mac_registers=off,... ...

As mentioned above, the default value is "on".

Signed-off-by: Leonid Bloch <leonid.bloch@ravellosystems.com>
Signed-off-by: Dmitry Fleytman <dmitry.fleytman@ravellosystems.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
hw/net/e1000.c
include/hw/compat.h

index 793286a844f24b8e0f5600343c7ae46989872643..c877e06c5d8cf78178b4c16a193fa69c46e7ad25 100644 (file)
@@ -1854,6 +1854,8 @@ static Property e1000_properties[] = {
                     compat_flags, E1000_FLAG_AUTONEG_BIT, true),
     DEFINE_PROP_BIT("mitigation", E1000State,
                     compat_flags, E1000_FLAG_MIT_BIT, true),
+    DEFINE_PROP_BIT("extra_mac_registers", E1000State,
+                    compat_flags, E1000_FLAG_MAC_BIT, true),
     DEFINE_PROP_END_OF_LIST(),
 };
 
index 93e71afb4ae0e66d99f65e54a11e69725380d056..896a1b050826321deecd214905bd9152d9604ffd 100644 (file)
@@ -6,7 +6,11 @@
             .driver   = "virtio-blk-device",\
             .property = "scsi",\
             .value    = "true",\
-        },
+        },{\
+            .driver   = "e1000",\
+            .property = "extra_mac_registers",\
+            .value    = "off",\
+         },
 
 #define HW_COMPAT_2_3 \
         {\