On Wed, Apr 06, 2016 at 10:36:06AM +0530, Bharata B Rao wrote:
> ibm,lrdr-capacity has a field to describe the maximum address in bytes
> and therefore, the most memory that can be allocated to this guest. We
> are using maxmem for this field, but instead should use the actual RAM
> address corresponding to the end of hotplug region.
>
> Signed-off-by: Bharata B Rao
> ---
> Applies on ppc-for-2.6 branch of David Gibson's tree.
Thanks, applied to ppc-for-2.6.
>
> hw/ppc/spapr_rtas.c | 7 +--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> index 2db2292..f073258 100644
> --- a/hw/ppc/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -684,6 +684,9 @@ int spapr_rtas_device_tree_setup(void *fdt, hwaddr
> rtas_addr,
> int i;
> uint32_t lrdr_capacity[5];
> MachineState *machine = MACHINE(qdev_get_machine());
> +sPAPRMachineState *spapr = SPAPR_MACHINE(machine);
> +uint64_t max_hotplug_addr = spapr->hotplug_memory.base +
> +
> memory_region_size(>hotplug_memory.mr);
>
> ret = fdt_add_mem_rsv(fdt, rtas_addr, rtas_size);
> if (ret < 0) {
> @@ -733,8 +736,8 @@ int spapr_rtas_device_tree_setup(void *fdt, hwaddr
> rtas_addr,
>
> }
>
> -lrdr_capacity[0] = cpu_to_be32(((uint64_t)machine->maxram_size) >> 32);
> -lrdr_capacity[1] = cpu_to_be32(machine->maxram_size & 0x);
> +lrdr_capacity[0] = cpu_to_be32(max_hotplug_addr >> 32);
> +lrdr_capacity[1] = cpu_to_be32(max_hotplug_addr & 0x);
> lrdr_capacity[2] = 0;
> lrdr_capacity[3] = cpu_to_be32(SPAPR_MEMORY_BLOCK_SIZE);
> lrdr_capacity[4] = cpu_to_be32(max_cpus/smp_threads);
--
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature