This fixes a couple nasty problems relating to live migration.
1) When dealing with shared storage with weak coherence (i.e. NFS), even if
we re-read, we may end up with undesired caching. By delaying any reads
until we absolutely have to, we decrease the likelihood of any undesirable
caching.
2) When dealing with copy-on-read, the local storage acts as a cache. We need
to make sure to avoid any reads to avoid polluting the local cache.
+
static void ide_identify(IDEState *s)
{
uint16_t *p;
@@ -105,6 +132,8 @@ static void ide_identify(IDEState *s)
return;
}
+ guess_geometry(s);
+