Skip to content

Commit

Permalink
ARM: deprecate support for old way to pass kernel parameters
Browse files Browse the repository at this point in the history
This was deprecated in 2001 and announced to live on for 5 years.

For now provide a kernel parameter for those who still need it.

Acked-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  • Loading branch information
Uwe Kleine-König committed Jul 7, 2010
1 parent 8d68fe7 commit 73a65b3
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 10 deletions.
6 changes: 6 additions & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1374,6 +1374,12 @@ config UACCESS_WITH_MEMCPY
However, if the CPU data cache is using a write-allocate mode,
this option is unlikely to provide any performance gain.

config DEPRECATED_PARAM_STRUCT
bool "Provide old way to pass kernel parameters"
help
This was deprecated in 2001 and announced to live on for 5 years.
Some old boot loaders still use this way.

endmenu

menu "Boot options"
Expand Down
4 changes: 3 additions & 1 deletion arch/arm/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ CFLAGS_REMOVE_return_address.o = -pg

# Object file lists.

obj-y := compat.o elf.o entry-armv.o entry-common.o irq.o \
obj-y := elf.o entry-armv.o entry-common.o irq.o \
process.o ptrace.o return_address.o setup.o signal.o \
sys_arm.o stacktrace.o time.o traps.o

obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o

obj-$(CONFIG_LEDS) += leds.o
obj-$(CONFIG_OC_ETM) += etm.o

Expand Down
7 changes: 0 additions & 7 deletions arch/arm/kernel/compat.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,10 +217,3 @@ void __init convert_to_tag_list(struct tag *tags)
struct param_struct *params = (struct param_struct *)tags;
build_tag_list(params, &params->u2);
}

void __init squash_mem_tags(struct tag *tag)
{
for (; tag->hdr.size; tag = tag_next(tag))
if (tag->hdr.tag == ATAG_MEM)
tag->hdr.tag = ATAG_NONE;
}
2 changes: 0 additions & 2 deletions arch/arm/kernel/compat.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,3 @@
*/

extern void convert_to_tag_list(struct tag *tags);

extern void squash_mem_tags(struct tag *tag);
11 changes: 11 additions & 0 deletions arch/arm/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@
#include <asm/traps.h>
#include <asm/unwind.h>

#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
#include "compat.h"
#endif
#include "atags.h"
#include "tcm.h"

Expand Down Expand Up @@ -663,6 +665,13 @@ static int __init customize_machine(void)
}
arch_initcall(customize_machine);

static void __init squash_mem_tags(struct tag *tag)
{
for (; tag->hdr.size; tag = tag_next(tag))
if (tag->hdr.tag == ATAG_MEM)
tag->hdr.tag = ATAG_NONE;
}

void __init setup_arch(char **cmdline_p)
{
struct tag *tags = (struct tag *)&init_tags;
Expand All @@ -683,12 +692,14 @@ void __init setup_arch(char **cmdline_p)
else if (mdesc->boot_params)
tags = phys_to_virt(mdesc->boot_params);

#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
/*
* If we have the old style parameters, convert them to
* a tag list.
*/
if (tags->hdr.tag != ATAG_CORE)
convert_to_tag_list(tags);
#endif
if (tags->hdr.tag != ATAG_CORE)
tags = (struct tag *)&init_tags;

Expand Down

0 comments on commit 73a65b3

Please sign in to comment.