On Tue, Nov 13, 2012 at 8:50 AM, Christian Borntraeger <borntrae...@de.ibm.com> wrote: > From: Einar Lueck <elelu...@linux.vnet.ibm.com> > > This patch disables the translation of geometry information read from > disks on s390. On s390 such translations lead to wrong geometries being > advertized to the guest because there is no entity doing these kinds > of translation on this architecture. > > Signed-off-by Einar Lueck <elelu...@linux.vnet.ibm.com> > Signed-off-by Christian Borntraeger <borntrae...@de.ibm.com> > --- > hw/hd-geometry.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/hd-geometry.c b/hw/hd-geometry.c > index 4cf040d..db1dc81 100644 > --- a/hw/hd-geometry.c > +++ b/hw/hd-geometry.c > @@ -144,6 +144,10 @@ static int guess_disk_msdosgeo(BlockDriverState *bs, > continue; > } > > +#ifdef __s390__
No, this would make all system emulators (e.g. x86) on s390 host to use this translation, not just s390. I think you want to use #ifdef CONFIG_S390X instead. > + /* on s390 there is no BIOS doing any kind of translation */ > + translation = BIOS_ATA_TRANSLATION_NONE; > +#else > if (heads > 16) { > /* LCHS guess with heads > 16 means that a BIOS LBA > translation was active, so a standard physical disk > @@ -158,6 +162,7 @@ static int guess_disk_msdosgeo(BlockDriverState *bs, > the logical geometry */ > translation = BIOS_ATA_TRANSLATION_NONE; > } > +#endif > *pheads = heads; > *psectors = sectors; > *pcylinders = cylinders; > -- > 1.7.10.1 > >