Re: [PATCH 1/1] PCI: Add hp_mmio_size and hp_mmio_pref_size parameters

From: Nicholas Johnson
Date: Wed Oct 23 2019 - 06:33:49 EST


On Wed, Oct 23, 2019 at 01:03:59PM +0300, mika.westerberg@xxxxxxxxxxxxxxx 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.westerberg@xxxxxxxxxxxxxxx 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