On Tue, Feb 19, 2019 at 06:09:27PM +0000, Julien Grall wrote: > On 1/22/19 5:45 AM, Will Deacon wrote: > > On Thu, Dec 20, 2018 at 03:21:24PM +0000, Julien Grall wrote: > > > + /* parse out guest addr */ > > > + base = 10; > > > + if (strcasestr(p, "0x")) > > > + base = 16; > > > + addr = strtoll(p, &next, base); > > > > I thought strtoll() already handled '0x' prefixes if you pass base = 0? > > It does. Base = 0 will also deal with octal number. Do we want to support > that here? Sure, why not? > > > > > + if (next == p && addr == 0) { > > > + /* > > > + * To keep backward compatibility, the <addr> is not > > > + * mandatory for the first bank. > > > + */ > > > + if (cfg->nr_ram > 0) > > > + die("mem: <addr> must be specified\n"); > > > + addr = INVALID_RAM_ADDR; > > > + } > > > + > > > + if ( cfg->nr_ram == MAX_RAM_BANKS ) > > > + die("mem: Too many banks\n"); > > > + > > > + /* > > > + * Allow the architecture to tell whether it is possible to configure > > > + * the RAM base address. > > > + */ > > > +#ifndef ARCH_SUPPORT_CFG_RAM_BASE > > > + if (addr == INVALID_RAM_ADDR) > > > + die("mem: specifying <addr> is not allowed\n"); > > > +#endif > > > + > > > + cfg->ram[cfg->nr_ram].base = addr; > > > + cfg->ram[cfg->nr_ram].size = size; > > > > How do you avoid adding overlapping regions? > > Overlapping regions check is added by the next patch. See the function > kvm__arch_sanitize_cfg. I can look at moving the overlapping check in common > code. Thanks, I must've missed that. Will