]> git.proxmox.com Git - mirror_qemu.git/commitdiff
hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>
Fri, 18 Sep 2020 17:06:41 +0000 (19:06 +0200)
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>
Wed, 21 Oct 2020 11:19:02 +0000 (13:19 +0200)
As it is legal to WRITE/ERASE the address/block 0,
change the value of this definition to an illegal
address: UINT32_MAX.

Unfortunately this break the migration stream, so
bump the VMState version number. This affects some
ARM boards and the SDHCI_PCI device (which is only
used for testing).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Alexander Bulekov <alxndr@bu.edu>
Message-Id: <20201015063824.212980-4-f4bug@amsat.org>

hw/sd/sd.c

index 30ae435d6693c9ed15670ae8c92c561ffce69b14..4c05152f1890e94e37e6e6b1e955c296d62b5768 100644 (file)
@@ -53,7 +53,7 @@
 
 #define SDSC_MAX_CAPACITY   (2 * GiB)
 
-#define INVALID_ADDRESS     0
+#define INVALID_ADDRESS     UINT32_MAX
 
 typedef enum {
     sd_r0 = 0,    /* no response */
@@ -666,8 +666,8 @@ static int sd_vmstate_pre_load(void *opaque)
 
 static const VMStateDescription sd_vmstate = {
     .name = "sd-card",
-    .version_id = 1,
-    .minimum_version_id = 1,
+    .version_id = 2,
+    .minimum_version_id = 2,
     .pre_load = sd_vmstate_pre_load,
     .fields = (VMStateField[]) {
         VMSTATE_UINT32(mode, SDState),