On Mon, 7 Jul 2014 17:05:22 -0600 Bruce Rogers <brog...@suse.com> wrote:
> When using a memory size less than the default amount with older pc > machine types, a failure occurs because of the way maxram_size and > ram_size get initialized. Keep maxram_size and ram_size the same, > except when maxmem is specified on the command line. > > Signed-off-by: Bruce Rogers <brog...@suse.com> > --- > vl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/vl.c b/vl.c > index 6e084c2..0cb8c10 100644 > --- a/vl.c > +++ b/vl.c > @@ -3345,7 +3345,6 @@ int main(int argc, char **argv, char **envp) > RAM_ADDR_FMT ")\n", slots, sz, > ram_size); exit(EXIT_FAILURE); > } > - maxram_size = sz; > ram_slots = slots; > } else if ((!maxmem_str && slots_str) || > (maxmem_str && !slots_str)) { > @@ -3353,6 +3352,7 @@ int main(int argc, char **argv, char **envp) > "'%s' option\n", slots_str ? "maxmem" : > "slots"); exit(EXIT_FAILURE); > } > + maxram_size = sz; Relying here on sz being either ram_size or maxmem is a bit fragile. It'd be better to set maxram_size to ram_size before parsing maxmem. I'll post alternative patch. > break; > } > #ifdef CONFIG_TPM