On Wed, Oct 23, 2019 at 01:03:59PM +0300, mika.westerb...@linux.intel.com wrote:
> On Wed, Oct 23, 2019 at 09:57:17AM +0000, Nicholas Johnson wrote:
> > On Wed, Oct 23, 2019 at 12:47:43PM +0300, mika.westerb...@linux.intel.com 
> > wrote:
> > > On Wed, Oct 23, 2019 at 08:37:48AM +0000, Nicholas Johnson wrote:
> > > >                         } else if (!strncmp(str, "hpmemsize=", 10)) {
> > > > -                               pci_hotplug_mem_size = memparse(str + 
> > > > 10, &str);
> > > > +                               pci_hotplug_mmio_size =
> > > > +                                       memparse(str + 10, &str);
> > > > +                               pci_hotplug_mmio_pref_size =
> > > > +                                       memparse(str + 10, &str);
> > > 
> > > Does this actually work correctly? The first memparse(str + 10, &str)
> > > modifies str so the next call will not start from the correct position
> > > anymore.
> > I have been using this for a long time now and have not had any issues.
> > Does it modify str? I thought that was done by the loop.
> 
> If you add "hpmemsize=xxx" in the command line and print both
> pci_hotplug_mmio_size and pci_hotplug_mmio_pref_size after the
> assignment, do they have the same value? If yes, then there is no
> problem.
Looking at lib/cmdline.c line 125, it looks like there is no point in me 
testing it. It looks like you are right.

What is the better fix?

pci_hotplug_mmio_size = pci_hotplug_mmio_pref_size = memparse(str + 10, &str);

^ Could be too long, even if we are ignoring the 80-character limit.

> 
> > Can somebody else please weigh in here? I am worried now, and I want to 
> > be sure. If it is a problem, then I will have to read it into 
> > pci_hotplug_mmio_size and then set:
> > 
> > pci_hotplug_mmio_pref_size = pci_hotplug_mmio_size
> 
> Yup.
Or do you prefer the above?

Thanks

Reply via email to