On 06/06/2012 02:05 PM, Jens Freimann wrote:
From: Nick Wang<jfw...@us.ibm.com>
To comply with the SCLP architecture, the number of storage
increments should be 512 or fewer. The increment size is a
multiple of 1M and is a power of 2.
Signed-off-by: Nick Wang<jfw...@us.ibm.com>
Signed-off-by: Jens Freimann<jf...@linux.vnet.ibm.com>
Any references to documentation for this one? :)
Alex
---
hw/s390-sclp.c | 2 +-
hw/s390-virtio.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/s390-sclp.c b/hw/s390-sclp.c
index 8f45773..3e91f93 100644
--- a/hw/s390-sclp.c
+++ b/hw/s390-sclp.c
@@ -32,7 +32,7 @@ int sclp_read_info(CPUS390XState *env, struct sccb *sccb)
{
int shift = 0;
- while ((ram_size>> (20 + shift))> 65535) {
+ while ((ram_size>> (20 + shift))> 512) {
shift++;
}
sccb->c.read_info.rnmax = cpu_to_be16(ram_size>> (20 + shift));
diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
index 0babf27..9578d15 100644
--- a/hw/s390-virtio.c
+++ b/hw/s390-virtio.c
@@ -175,9 +175,9 @@ static void s390_init(ram_addr_t my_ram_size,
int i;
DeviceState *dev;
- /* s390x ram size detection needs a 16bit multiplier + an increment. So
- guests> 64GB can be specified in 2MB steps etc. */
- while ((my_ram_size>> (20 + shift))> 65535) {
+ /* The storage increment size is a multiple of 1M and is a power of 2.
+ * The number of storage increments must be 512 or fewer. */
+ while ((my_ram_size>> (20 + shift))> 512) {
shift++;
}
my_ram_size = my_ram_size>> (20 + shift)<< (20 + shift);