Files
ubports_kernel_google_msm/include/linux
Alon Bar-Lev 30d7e0d466 [PATCH] Dynamic kernel command-line: common
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 paramters 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.20-rc4-mm1 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.

This patch:

1. Rename saved_command_line into boot_command_line, mark as init
   disposable.

2. Add dynamic allocated saved_command_line.

3. Add dynamic allocated static_command_line.

4. During startup copy: boot_command_line into saved_command_line.  arch
   command_line into static_command_line.

5. Parse static_command_line and not arch command_line, so arch
   command_line may be freed.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Cc: Andi Kleen <ak@muc.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Ian Molton <spyro@f2s.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Cc: Richard Curnow <rc@rc0.org.uk>
Cc: William Lee Irwin III <wli@holomorphy.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
Cc: Chris Zankel <chris@zankel.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-12 09:48:37 -08:00
..
2006-09-26 17:40:24 -04:00
2007-02-12 09:48:31 -08:00
2006-12-04 02:00:22 -05:00
2006-10-03 23:01:26 +02:00
2007-02-09 17:39:39 -05:00
2006-09-28 17:53:58 -07:00
2006-12-02 21:22:55 -08:00
2006-12-02 21:22:55 -08:00
2006-12-06 20:14:22 -08:00
2006-01-13 09:12:21 -08:00
2006-10-03 23:01:26 +02:00
2006-12-08 08:28:39 -08:00
2006-12-07 08:39:37 -08:00
2006-12-07 08:39:20 -08:00
2006-12-08 08:28:39 -08:00
2007-01-30 08:26:45 -08:00
2007-02-11 10:51:24 -08:00
2006-12-30 10:56:43 -08:00
2006-12-11 14:35:00 -08:00
2006-12-07 08:39:25 -08:00
2007-02-09 17:39:36 -05:00
2006-06-09 16:14:20 -04:00
2006-02-23 09:56:38 +00:00
2006-07-03 19:44:51 -07:00
2007-02-09 17:39:36 -05:00
2007-02-11 11:18:07 -08:00
2007-02-01 16:17:06 -08:00
2006-09-26 08:48:54 -07:00
2006-06-23 02:07:36 -07:00
2006-03-31 12:18:54 -08:00
2006-09-22 15:18:47 -07:00
2007-02-12 09:48:28 -08:00
2006-12-07 08:39:32 -08:00
2006-12-10 09:55:41 -08:00
2006-10-02 07:57:12 -07:00
2006-09-26 17:40:24 -04:00
2007-02-07 15:44:36 -08:00
2007-01-08 19:49:54 +00:00
2006-03-26 08:56:56 -08:00
2007-02-09 09:00:22 +01:00
2006-12-10 21:21:29 +01:00
2006-12-10 21:21:31 +01:00
2006-09-28 18:02:13 -07:00
2006-12-04 02:00:34 -05:00
2006-12-02 21:21:21 -08:00
2006-09-28 18:02:29 -07:00
2007-02-09 17:39:36 -05:00
2007-02-11 11:18:07 -08:00
2006-10-10 15:37:22 -07:00
2007-02-09 17:39:36 -05:00
2006-08-21 10:02:50 +02:00
2006-12-02 21:21:21 -08:00
2006-10-04 07:55:12 -07:00
2006-12-07 08:39:47 -08:00
2006-12-07 08:39:47 -08:00
2006-12-07 08:39:47 -08:00
2006-10-04 00:31:09 -07:00
2006-12-02 21:21:21 -08:00
2006-03-20 22:21:10 -08:00
2007-02-07 15:50:08 -08:00
2006-06-21 12:40:49 -07:00
2006-12-08 08:28:57 -08:00
2006-11-30 05:24:39 +01:00
2006-11-30 04:53:49 +01:00
2007-02-12 09:48:30 -08:00
2007-02-07 10:37:14 -08:00
2007-02-11 10:51:24 -08:00
2007-02-09 17:39:40 -05:00
2006-07-31 15:44:29 -04:00
2006-06-05 12:29:17 -07:00
2007-02-12 09:48:31 -08:00
2007-02-12 09:48:31 -08:00
2007-02-07 10:37:12 -08:00
2006-11-30 04:40:22 +01:00
2006-09-28 18:02:22 -07:00
2006-11-16 11:43:38 -08:00
2007-02-07 15:50:08 -08:00
2007-01-23 00:34:54 -05:00
2006-03-23 07:38:14 -08:00
2006-11-22 14:57:56 +00:00
2007-02-08 13:51:54 -08:00
2006-03-20 13:44:40 -05:00
2006-12-06 10:46:38 -05:00
2006-12-07 02:14:01 +01:00
2006-08-27 11:01:32 -07:00
2007-02-09 08:06:14 -08:00
2007-02-11 11:18:07 -08:00
2006-03-27 08:44:48 -08:00
2006-06-28 15:54:27 -07:00
2006-11-03 12:27:58 -08:00
2007-02-11 10:51:28 -08:00
2006-07-03 19:48:25 -07:00
2006-12-04 02:00:36 -05:00
2006-10-03 23:01:26 +02:00
2007-01-11 18:18:21 -08:00
2006-06-25 10:01:06 -07:00
2007-02-11 10:51:28 -08:00
2006-06-25 10:01:06 -07:00
2006-09-26 08:49:04 -07:00
2006-12-22 08:55:49 -08:00
2006-06-25 10:01:14 -07:00
2006-12-10 09:55:40 -08:00
2006-12-12 08:10:44 -08:00
2006-12-07 08:39:35 -08:00
2006-12-08 08:28:57 -08:00
2006-12-07 08:39:25 -08:00
2006-12-13 09:05:49 -08:00
2006-10-10 16:15:34 -07:00
2006-10-01 00:39:18 -07:00
2006-10-01 00:39:19 -07:00
2007-02-11 10:51:18 -08:00
2006-10-11 11:14:21 -07:00
2007-02-07 14:03:19 +11:00
2007-02-07 10:37:14 -08:00
2006-11-30 05:32:19 +01:00
2006-03-31 12:18:56 -08:00
2006-12-02 21:21:08 -08:00
2006-09-28 17:53:59 -07:00
2006-03-23 07:38:14 -08:00
2007-02-12 09:48:30 -08:00
2006-12-15 08:47:51 -08:00
2006-10-01 00:39:19 -07:00
2006-10-04 07:55:12 -07:00
2007-02-11 10:51:25 -08:00
2006-12-02 00:11:58 -05:00
2007-02-11 11:18:05 -08:00