This patch has already been posted by Alon Bar-Lev <[email protected]>
in 2nd Dec 2006. He didn't get any response. Because I think that this
patch would be really useful being able to increase the command line, I
post this patch again to get some response.
This patches are against 2.6.20-rc4-mm1.
Current implementation stores a static command-line buffer allocated to
COMMAND_LINE_SIZE size. Most architectures stores two copies of this
buffer, one for future reference and one for parameter parsing.
Current kernel command-line size for most architecture is much too small
for module parameters, video settings, initramfs parameters and much
more. The problem is that setting COMMAND_LINE_SIZE to a grater value,
allocates static buffers.
In order to allow a greater command-line size, these buffers should be
dynamically allocated or marked as init disposable buffers, so unused
memory can be released.
This patch renames the static saved_command_line variable into
boot_command_line adding __initdata attribute, so that it can be
disposed after initialization. This rename is required so applications
that use saved_command_line will not be affected by this change.
It reintroduces saved_command_line as dynamically allocated buffer to
match the data in boot_command_line.
It also mark secondary command-line buffer as __initdata, and copies it
to dynamically allocated static_command_line buffer components may hold
reference to it after initialization.
This patch is for linux-2.6.19 and is divided to target each
architecture. I could not check this in any architecture so please
forgive me if I got it wrong.
The per-architecture modification is very simple, use boot_command_line
in place of saved_command_line. The common code is the change into
dynamic command-line.
Signed-off-by: Alon Bar-Lev <[email protected]>