On 2019-04-05 3:39 p.m., Bjorn Helgaas wrote: >> -static const char *disable_acs_redir_param; >> +static char disable_acs_redir_param[COMMAND_LINE_SIZE]; > > I certainly acknowledge the problem, but I'm a little hesitant to add > a static buffer of 256-4096 bytes (2048 on x86, arm64, powerpc, sparc) > for a relatively low-usage situation. The memory usage doesn't seem > in proportion to the value-add. > > Ugh, and we allocate another similar buffer for > resource_alignment_param[], which I would guess is also rarely used. Yeah, I was looking for a better solution and eventually decided to just copy what was done in the past. > Since disable_acs_redir_param[] and resource_alignment_param[] are > both read-only and big enough to hold the entire command line, we > should be able to share a single buffer between them if we made the > parsers a little smarter. That sounds like a good idea that I didn't think of. If I can't find something better, I'll do that. > In fact, I bet there's already a static > copy lying around somewhere for /proc/cmdline. There are lots of copies of cmdline around, but none that are available for early param. I did a sampling of some of the other early params but none seem to be anywhere near as complex as the PCI one and I haven't yet found one that needs to keep a copy of any or all of the command line. In any case, I'll keep digging and try to get a better patch for you shortly. Logan