On Wed, 11 Oct 2023 16:23:35 +0530 Ani Sinha <[email protected]> wrote:
> pc_get_device_memory_range() finds the device memory size by calculating the > difference between maxram and ram sizes. This calculation makes sense only > when > maxram is greater than the ram size. Make sure we check for that before > calling > pc_get_device_memory_range(). > > Signed-off-by: Ani Sinha <[email protected]> Whilst this is similar to other cases, I can't remember or quickly work out if the 'else' path here is appropriate. Can we add something to the patch description to talk about that? For reference it's: cxl_base = pc_above_4g_end(pcms); > --- > hw/i386/pc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index f72e2c3b35..948c58171c 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -820,10 +820,12 @@ static void pc_get_device_memory_range(PCMachineState > *pcms, > static uint64_t pc_get_cxl_range_start(PCMachineState *pcms) > { > PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms); > + MachineState *ms = MACHINE(pcms); > hwaddr cxl_base; > ram_addr_t size; > > - if (pcmc->has_reserved_memory) { > + if (pcmc->has_reserved_memory && > + (ms->ram_size < ms->maxram_size)) { > pc_get_device_memory_range(pcms, &cxl_base, &size); > cxl_base += size; > } else {
